Android中使用opencv裁剪图像
我在 Android 中使用 OpenCV 2.3.1。我需要将图像裁剪成两半。 我正在做的是:
Mat mIntermediateMat2 = new Mat(frame_height,frame_width,rgba.type);
mIntermediateMat2 = rgba.clone();
mIntermediateMat2 = mIntermediateMat2.rowRange(0,frame_height/2);
第三步可以完成这项工作还是我必须添加更多东西? 我在 opencv 2.3 文档中看到 Mat::operator() 但不幸的是无法在 opencv Android 包中找到。
I am using OpenCV 2.3.1 in Android. I need to crop the image into half.
What I am doing is:
Mat mIntermediateMat2 = new Mat(frame_height,frame_width,rgba.type);
mIntermediateMat2 = rgba.clone();
mIntermediateMat2 = mIntermediateMat2.rowRange(0,frame_height/2);
Will the third step do the job or I have to add something more?
I saw Mat::operator() in opencv 2.3 documentation but unfortunately not able to find in the opencv Android package.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Mat 类有几个构造函数,其中一个需要一个 Mat 和一个 ROI(感兴趣区域)。
以下是在 Android/Java 中执行此操作的方法:
There are a few constructors for the Mat class, one of which takes a Mat and an ROI (region of interest).
Here's how to do it in Android/Java:
我一直都是这样裁剪的:
希望有帮助!
I have always done cropping this way:
Hope that helps!
似乎cv::getRectSubPix 做你想要的。另外,您不必分配超出您需要的空间。如果裁剪区域未在精确像素上对齐,它也会进行必要的插值。
这应该做你想做的。输入类型将是输出类型。
Seems cv::getRectSubPix does what you want. Plus you don't have to allocate more space than you need. Also it does necessary interpolations if the cropped area is not aligned over an exact pixel.
This should do what you want. Input type will be the output type.