我正在尝试使用OpenCV for iOS裁剪来自视频流的图像.我不是想做任何花哨的事情,只需裁剪图像,然后显示它.我试过这个,这个,似乎对我都不起作用.作为委托方法,我得到了传入的当前cv :: Mat图像,所以我需要的是创建裁剪效果的代码.
我可以做一些那样复杂此如果需要的话,但我只需要一个长方形的作物,所以我觉得还有一个更简单的方法.我只是不明白为什么设置ROI不适合我!
cv::Rect myROI(10, 10, 100, 100);
cv::Mat croppedImage = src(myROI);
src.copyTo(croppedImage);
[displayView setImage:[UIImage imageWithCVMat:src]];
Run Code Online (Sandbox Code Playgroud)
^^^不工作,只显示原始图像
Tob*_*nst 22
您的代码中的问题是,通过复制src图像,您可以将整个图像复制到裁剪后的图像.有两种可能性:
1 - 不复制数据.和你一样.但没有第二步.在这种情况下,croppedImage不是真正的副本,它指向src中分配的数据:
cv::Mat croppedImage = src(myRoi);
Run Code Online (Sandbox Code Playgroud)
2 - 复制数据.
cv::Mat croppedImage;
cv::Mat(src, myRoi).copyTo(croppedImage)
Run Code Online (Sandbox Code Playgroud)
(一线法 - cv::Mat croppedImage = cv::Mat(src, myRoi).clone();)
| 归档时间: |
|
| 查看次数: |
11415 次 |
| 最近记录: |