Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV 2.4.3(iOS)中的裁剪垫图像_Ios_Opencv - Fatal编程技术网

OpenCV 2.4.3(iOS)中的裁剪垫图像

OpenCV 2.4.3(iOS)中的裁剪垫图像,ios,opencv,Ios,Opencv,我正在尝试使用OpenCV for iOS裁剪视频流中的图像。我不想做任何花哨的事情,只是裁剪图像,然后显示出来。我试过了,但两种方法都不管用。作为委托方法,我获得了传入的当前cv::Mat图像,因此我所需要的只是创建裁剪效果的代码 我可以做一些像需要一样复杂的事情,但我只需要一个矩形的裁剪,所以我认为有一个更简单的方法。我只是不明白为什么设置投资回报率对我不起作用 cv::Rect myROI(10, 10, 100, 100); cv::Mat croppedImage = src(myRO

我正在尝试使用OpenCV for iOS裁剪视频流中的图像。我不想做任何花哨的事情,只是裁剪图像,然后显示出来。我试过了,但两种方法都不管用。作为委托方法,我获得了传入的当前cv::Mat图像,因此我所需要的只是创建裁剪效果的代码

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

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 cropedimage=cv::Mat(src,myRoi).clone();

我以前试过你的第一个建议,当我展示它时,它看起来非常糟糕(有点像电视静电)。你提到的第二种方法对我很有效,谢谢@Jameo您的显示方法可能假设数据是连续的,而使用第一种方法时,这是不正确的。第二种建议对我有效,而第一种建议失败。@jarora-您得到了什么样的错误?请注意,在第一种情况下,croppedImage和myRoi图像数据ptr指向一个数据对象谢谢!你刚刚救了我。在
Java
(Android)中,我可以使用`
publicmat(matm,rectroi)-例如-
Mat crapped=新Mat(src,myRoi)-效果很好。在iOS中,我尝试了第一种方法,但没有成功,现在我使用第二种方法,效果很好。我面临着同样的问题。你能看看我的帖子吗