27 #include "Helpers/helpers.h"
38 #include <SimoxUtility/algorithm/string/string_tools.h>
47 IEEE1394ImageProvider::onInitCapturingImageProvider()
51 videoDimension = getProperty<ImageDimension>(
"VideoMode").getValue();
52 colorFormat = getProperty<ColorFormat>(
"ColorMode").getValue();
53 bayerPatternType = getProperty<BayerPatternType>(
"BayerPatternType").getValue();
54 isFormat7Mode = getProperty<bool>(
"Format7Mode").getValue();
55 frameRate = getProperty<float>(
"FrameRate").getValue();
56 std::string uidStr = getProperty<std::string>(
"CameraUIDs").getValue();
60 setNumberImages(uids.size());
61 setImageFormat(videoDimension, colorFormat.imageType, bayerPatternType);
62 setImageSyncMode(eCaptureSynchronization);
87 std::string leftUID, rightUID;
98 rightUID = uids.at(1);
104 colorFormat.colorMode,
117 IEEE1394ImageProvider::onExitCapturingImageProvider()
119 if (ppImages != NULL)
121 for (
int i = 0; i < getNumberImages(); i++)
133 IEEE1394ImageProvider::onStartCapture(
float frameRate)
137 ppImages =
new CByteImage*[2];
139 for (
int i = 0; i < getNumberImages(); i++)
145 if (!ieee1394Capturer->OpenCamera())
147 throw visionx::exceptions::user ::StartingCaptureFailedException(
148 "Opening cameras failed!");
152 ieee1394Capturer->SetGain((
unsigned int)-1);
153 ieee1394Capturer->SetExposure((
unsigned int)-1);
154 ieee1394Capturer->SetShutter((
unsigned int)-1);
155 ieee1394Capturer->SetWhiteBalance(
161 IEEE1394ImageProvider::onStopCapture()
164 ieee1394Capturer->CloseCamera();
166 if (ppImages != NULL)
168 for (
int i = 0; i < getNumberImages(); i++)
180 IEEE1394ImageProvider::capture(
void** ppImageBuffers)
182 bool succeeded =
false;
184 switch (getImageFormat().type)
186 case visionx::eBayerPattern:
192 case visionx::eGrayScale:
193 succeeded = ieee1394Capturer->CaptureImage(ppImages);
212 ImageFormatInfo imageFormat = getImageFormat();
216 int imageSize = imageFormat.dimension.width * imageFormat.dimension.height *
217 imageFormat.bytesPerPixel;
218 memcpy(ppImageBuffers[0], ppImages[0]->pixels, imageSize);
219 memcpy(ppImageBuffers[1], ppImages[1]->pixels, imageSize);