如果映像是UIMimage,我们可以在xcode的调试模式下查看映像,但对于cv::mat images,我不能查看,这是正常的,那么,是否有任何附加工具可以添加到xcode中,以便在cv::mat images的调试模式下显示(或查看)映像?
w8rqjzmb1#
如果您可以使用CLion而不是Xcode,则可以利用OpenCV Image Viewer插件,该插件在调试时只需单击即可显示矩阵。https://plugins.jetbrains.com/plugin/14371-opencv-image-viewer
免责声明:我是这个插件的作者
bzzcjhmw2#
你应该创建一个在其中安装opencv2.framework的ios项目,并将你的cpp代码拖到该项目中,创建一个新的条目来运行,然后你应该能够使用上面的转换代码来查看作为UIImage的mat ...
yvgpqqbh3#
我不知道我是否理解了你的问题,但是如果你想简单地显示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?
3条答案
按热度按时间w8rqjzmb1#
如果您可以使用CLion而不是Xcode,则可以利用OpenCV Image Viewer插件,该插件在调试时只需单击即可显示矩阵。
https://plugins.jetbrains.com/plugin/14371-opencv-image-viewer
免责声明:我是这个插件的作者
bzzcjhmw2#
你应该创建一个在其中安装opencv2.framework的ios项目,并将你的cpp代码拖到该项目中,创建一个新的条目来运行,然后你应该能够使用上面的转换代码来查看作为UIImage的mat ...
yvgpqqbh3#
我不知道我是否理解了你的问题,但是如果你想简单地显示cv::Mat预览,你可以把cv::Mat转换成UIImage。我可以告诉你如何在Objective-C中做到这一点:
如果这是你问的,在StackOveflow上还有很多类似的问题:
how to convert from cvMat to UIImage in objective-c?
how to convert from cvMat to UIImage in objective-c?