-(UIImage *)UIImageFromIplImage:(IplImage *)inputImage
{
CGColorSpaceRef colorSpace;
if (inputImage->nChannels == 1) {
colorSpace = CGColorSpaceCreateDeviceGray();
}
else {
colorSpace = CGColorSpaceCreateDeviceRGB();
cvCvtColor(inputImage, inputImage, CV_BGR2RGB);
}
NSData *data = [NSData dataWithBytes:inputImage->imageData length:inputImage->imageSize];
CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data);
CGImageRef imageRef = CGImageCreate(inputImage->width,
inputImage->height,
inputImage->depth,
inputImage->depth * inputImage->nChannels,
inputImage->widthStep,
colorSpace,
kCGImageAlphaNone|kCGBitmapByteOrderDefault,
provider,
NULL,
false,
kCGRenderingIntentDefault
);
UIImage *outputImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
CGDataProviderRelease(provider);
CGColorSpaceRelease(colorSpace);
return outputImage;
}
全站熱搜
留言列表