2015-04-03 71 views
6

如果图像是UIImage,我们可以在xcode的调试模式下查看图像,但我不能用于cv :: mat图像,这是正常的,所以无论如何还是我们可以将任何附加工具添加到xcode中以显示(或查看)cv :: mat图像调试模式下的图像?CV :: MAT在调试模式下预览图像

+0

你有没有找到解决这个问题的方法?欢呼 – 2016-09-18 14:43:21

回答

-1

我不知道我是否理解你的问题,但如果你想简单地显示一个cv :: Mat预览,你可以将cv :: Mat转换为UIImage。我可以告诉你如何做到这一点在Objective-C:

-(UIImage *)UIImageFromCVMat:(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); 

    // Creating CGImage from cv::Mat 
    CGImageRef imageRef = CGImageCreate(cvMat.cols,         //width 
            cvMat.rows,         //height 
            8,           //bits per component 
            8 * cvMat.elemSize(),      //bits per pixel 
            cvMat.step[0],       //bytesPerRow 
            colorSpace,         //colorspace 
            kCGImageAlphaNone|kCGBitmapByteOrderDefault,// bitmap info 
            provider,         //CGDataProviderRef 
            NULL,          //decode 
            false,          //should interpolate 
            kCGRenderingIntentDefault     //intent 
            ); 


    // Getting UIImage from CGImage 
    UIImage *finalImage = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 
    CGDataProviderRelease(provider); 
    CGColorSpaceRelease(colorSpace); 
    return finalImage; 
} 

如果这是你的要求,也有对StackOveflow很多类似的问题:

how to convert from cvMat to UIImage in objective-c?

how to convert from cvMat to UIImage in objective-c?

+0

没有我的问题是完全不同的 – 2015-11-24 08:45:44

+0

对不起,也许如果你解释更好的问题,我可以帮助你。 – 2015-11-24 10:30:17

+0

好的,我明白你的问题。您想使用Xcode的快速查看按钮在调试器中查看图像。 – 2015-11-24 10:50:25

0

你应该创建一个ios项目,在其中安装opencv2.framework,并将你的cpp代码拖到那个项目中,创建一个新的项目然后你应该可以使用上面的转换代码来查看mat作为UIImage ...

+0

欢迎来到StackOverflow!我建议你写出没有适当语法结构的格式正确的句子。 – 2017-02-17 02:42:15