37 #include <Image/ByteImage.h>
38 #include <Image/FloatImage.h>
39 #include <Image/ImageProcessor.h>
43 const visionx::ImageType destinationImageType,
47 bool succeeded =
true;
49 visionx::ImageDimension dimension = imageFormat.dimension;
50 visionx::ImageType sourceType = imageFormat.type;
51 visionx::ImageType destinationType = destinationImageType;
54 if (sourceType == destinationType)
58 imageFormat.bytesPerPixel * imageFormat.dimension.width *
59 imageFormat.dimension.height);
64 CByteImage sourceImage(
66 sourceImage.pixels = (
unsigned char*)inputData;
68 CByteImage destinationImage(
70 destinationImage.pixels = (
unsigned char*)outputData;
77 switch (destinationType)
81 CByteImage tempRgbImage(dimension.width, dimension.height, CByteImage::eRGB24);
82 ::ImageProcessor::ConvertBayerPattern(
84 ::ImageProcessor::ConvertImage(&tempRgbImage, &destinationImage);
90 ::ImageProcessor::ConvertBayerPattern(
91 &sourceImage, &destinationImage,
tools::convert(imageFormat.bpType));
112 switch (destinationType)
116 ::ImageProcessor::ConvertImage(&sourceImage, &destinationImage);
137 switch (destinationType)
141 ::ImageProcessor::ConvertImage(&sourceImage, &destinationImage);
192 const visionx::ImageType imageType)
194 CByteImage::ImageType type = CByteImage::eGrayScale;
203 type = CByteImage::eRGB24;
213 return new CByteImage(imageFormat.dimension.width, imageFormat.dimension.height, type);
231 const visionx::ImageType imageType)
233 int numberOfChannels = 1;
241 case eFloat3Channels:
242 numberOfChannels = 3;
253 return new CFloatImage(
254 imageFormat.dimension.width, imageFormat.dimension.height, numberOfChannels);
264 visionx::MonocularCalibration
267 visionx::MonocularCalibration calibration;
268 calibration.cameraParam.width = 640;
269 calibration.cameraParam.height = 480;
270 calibration.cameraParam.focalLength.resize(2);
271 calibration.cameraParam.focalLength[0] = 500;
272 calibration.cameraParam.focalLength[1] = 500;
273 calibration.cameraParam.principalPoint.resize(2);
274 calibration.cameraParam.principalPoint[0] = calibration.cameraParam.width / 2;
275 calibration.cameraParam.principalPoint[1] = calibration.cameraParam.height / 2;
276 std::vector<std::vector<float>> mat(3);
277 std::vector<float> rowVec(3);
281 calibration.cameraParam.translation = rowVec;
288 calibration.cameraParam.rotation = mat;
290 calibration.cameraParam.distortion = rowVec;