-(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;
}


arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()