ios - OpenCV 2.4.3 (iOS) 中的 Crop Mat 图像

标签 ios opencv

我正在尝试使用适用于 iOS 的 OpenCV 从视频流中裁剪图像。我并不想做任何花哨的事情,只是裁剪图像并显示它。我试过this , 和 this ,似乎都不适合我。作为一个委托(delegate)方法,我得到了传入的当前 cv::Mat 图像,所以我只需要创建裁剪效果的代码。

我可以做像 this 这样复杂的事情如果需要的话,但我只需要一个矩形裁剪,所以我认为有一种更简单的方法。我只是不明白为什么设置投资返回率对我不起作用!

cv::Rect myROI(10, 10, 100, 100);
cv::Mat croppedImage = src(myROI);

src.copyTo(croppedImage);


[displayView setImage:[UIImage imageWithCVMat:src]];

^^^不工作,只显示原始图像

最佳答案

您的代码中的问题是,通过复制 src 图像,您将整个图像复制到裁剪后的图像。 有两种可能:

1 - 不复制数据。和你做的一样。但是没有第二步。在这种情况下,croppedImage 不是真正的副本,它指向 src 中分配的数据。:

cv::Mat croppedImage = src(myRoi);

2 - 复制数据。

cv::Mat croppedImage;
cv::Mat(src, myRoi).copyTo(croppedImage)

(单行法 - cv::Mat croppedImage = cv::Mat(src, myRoi).clone();)

关于ios - OpenCV 2.4.3 (iOS) 中的 Crop Mat 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14446643/

相关文章:

iphone - HTML 解析因重音字母而失败(例如 : é)

ios - 贴纸包应用程序 - 如何准备提交

c++ - 在 Maemo 5 (N900) 上使用 QT 的 OpenCV

c++ - 在 OpenGL 中改变焦点时 WIndows 闪烁

ios - 将数据从一个 View Controller 传递到另一个时出错

ios - swift 1.2 中的 JSON 解析问题

python - 通过仅拍摄某些帧但不将其写入文件来从另一个视频创建视频

c++ - OpenCv:车牌识别

libs 和 jniLibs 的 Android Studio 依赖问题

ios - TestFlight 错误 "Your request couldn' t 完成”?