0
에서 이력서 :: 매트를 만드는 동안
내가 OpenCV의와 가장 간단한 작업을 수행하기 위해 노력하고있어 - 이력서 : 매트 회색이 오류 얻을 수있는 UIImage 변환 :오류가있는 UIImage
CGBitmapContextCreate: invalid data bytes/row: should be at least 12000
for 8 integer bits/component, 3 components, kCGImageAlphaNoneSkipLast.
내가 OpenCV의를 사용하고 있습니다를 V 3.2.0 내가 웹에서 발견 한이 샘플 코드 CocoaPods를 통해 유선 :
- (cv::Mat)cvMatGrayFromUIImage:(UIImage *)image
{
CGColorSpaceRef colorSpace = CGImageGetColorSpace(image.CGImage);
CGFloat cols = image.size.width;
CGFloat rows = image.size.height;
cv::Mat cvMat(rows, cols, CV_8UC1); // 8 bits per component, 1 channels
CGContextRef contextRef = CGBitmapContextCreate(cvMat.data, // Pointer to data
cols, // Width of bitmap
rows, // Height of bitmap
8, // Bits per component
cvMat.step[0], // Bytes per row
colorSpace, // Colorspace
kCGImageAlphaNoneSkipLast |
kCGBitmapByteOrderDefault); // Bitmap info flags
CGContextDrawImage(contextRef, CGRectMake(0, 0, cols, rows), image.CGImage);
CGContextRelease(contextRef);
return cvMat;
}