2013-10-11 128 views
0

这个问题是从http://answers.opencv.org/question/22242/region-of-interest-of-yv12-matrix/(我迄今没有收到答案)的crosspost。感兴趣的YV12矩阵

我在YV12色彩空间中存储以下OpenCV矩阵(存储为单通道图像)。它充满了来自Android相机预览的数据。

mYuv = new Mat(480 + (480/2), 640, CvType.CV_8UC1); 

是否有可能提取该图像的一些子区域(第一步骤)和将其转换为RGB色彩随后(第二步骤)?我想首先提取区域以便在转换时保持良好性能。要说,我想提取以下矩形:

x: 150 
y: 50 
width: 60 
height: 60 

在此先感谢。

回答

0

使用子阵列

roi = mYuv.submat(new Rect(x,y,width,height)); 

然后Imgproc.cvtColor与正确的代码。 我没有马上检查它的方式,但我会尝试:

Imgproc.cvtColor(roi, destination, Imgproc.COLOR_YUV2RGB_YV12); 

希望帮助!

+0

对不起,我忘了提及,但我已经尝试将我的ROI传递给一个'Mat'拷贝构造函数,并且得到了OpenCV声明异常。这种方法显然不起作用,因为YUV存储在1通道图像中,因此应该进行某种预处理。 –