【问题标题】:UIImage to cv::Mat CV_8UC3UIImage 到 cv::Mat CV_8UC3
【发布时间】:2015-02-23 00:29:33
【问题描述】:
关于使用 CV_8UC4 编码将 UIIMage 转换为 cv::Mat 有很多问题。 OpenCV iOS 网站上甚至还有 tutorial。
但是,在我的一生中,我无法弄清楚如何正确地将 UIImage 转换为 8UC3。使用股票 OpenCV 示例,尝试转换为 8UC1 也会中断,因为 cv:Mat 在初始化后有大量空指针。
对我如何能够正确执行此操作有任何见解吗?谢谢!
【问题讨论】:
标签:
c++
ios
objective-c
opencv
uiimage
【解决方案1】:
对于我来说,当我想从 UIImage 转换为 Mat 时,我只需使用预定义的函数
UIImageToMat 像这样:
UIImageToMat(extractedUIImage, matImage);
但首先你需要从 openCV 中包含这个头文件:
#import <opencv2/highgui/ios.h>
从 Mat 转换为 UIImage 也是如此:
UIImage *extractedImage = MatToUIImage(matImage);
试一试,对我来说很好用
【解决方案2】:
将 UIImage 转换为 cv::Mat 后尝试调用以下...
cvtColor(srcMat, destMat, CV_RGBA2BGR);