У меня две проблемы с преобразованием моего изображения (только jpeg-файлов) из NSImage в IplImage. Моя первая проблема заключается в том, что преобразованное изображение имеет ту же интенсивность цвета, что и исходное. Преобразованное изображение несколько более безцветное, чем исходное.
Моя вторая проблема - конвертируется всего 8/10 изображений, а из 2/10 изображений конвертируется только часть изображения. Я имею в виду, что будет преобразован только верхний левый угол изображения. Я надеюсь, вы понимаете меня, мой английский не самый лучший.
IplImage* convert(NSImage* bild){
//converting the NSImage into an IplImage
NSBitmapImageRep *bitmap2 = [NSBitmapImageRep imageRepWithData:[bild TIFFRepresentation]];
int depth = [bitmap2 bitsPerSample];
int channels = [bitmap2 samplesPerPixel];
int height = [bitmap2 size].height;
int width = [bitmap2 size].width;
IplImage *iplpic = cvCreateImage(cvSize( width,height), depth, channels);
cvSetImageData(iplpic, [bitmap2 bitmapData], [bitmap2 bytesPerRow]);
for (int i = 0; i < iplpic->imageSize; i += 3) {
uchar tempR, tempG, tempB;
tempR = iplpic->imageData[i];
tempG = iplpic->imageData[i+1];
tempB = iplpic->imageData[i+2];
iplpic->imageData[i+2] = tempR;
iplpic->imageData[i+1] =tempG;
iplpic->imageData[i] = tempB;
}
cvSaveImage("/Users/goette/out.jpg", iplpic, 0);
return iplpic;
}