0
我試圖將UIImage轉換爲cv :: Mat,然後返回到UIImage並將該UIImage插入到UIImageView中。將cv :: Mat轉換爲UIImage時發生崩潰opencv 2.4
這是我使用的轉換代碼:
UIImage * imageFromMat(const cv::Mat& cvMat){
NSData *data = [NSData dataWithBytes:cvMat.data length:cvMat.elemSize() * cvMat.total()];
CGColorSpaceRef colorSpace;
if (cvMat.elemSize() == 1) {
colorSpace = CGColorSpaceCreateDeviceGray();
} else {
colorSpace = CGColorSpaceCreateDeviceRGB();
}
CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data);
CGImageRef imageRef = CGImageCreate(cvMat.cols,
cvMat.rows,
8,
8 * cvMat.elemSize(),
cvMat.step[0],
colorSpace,
kCGImageAlphaNone | kCGBitmapByteOrderDefault,
provider,
NULL,
false,
kCGRenderingIntentDefault);
UIImage *image = [[[UIImage alloc] initWithCGImage:imageRef] autorelease];
CGImageRelease(imageRef);
CGDataProviderRelease(provider);
CGColorSpaceRelease(colorSpace);
return image;
}
它把罰款,但只要我將其插入一個UIImageView,我得到一個崩潰,所以我假設的問題在於有。
我注意到,如果我保留原始圖像(轉換爲cv :: Mat之前的圖像),崩潰不會發生,但我得到一個泄漏。
對這個問題可能有什麼想法?