2012-04-01 84 views
0

我试图将两个图像拼接在一起,但只有第一个可以在最终图像中看到蜜蜂。 这里是我的代码:opencv:将图像拼接在一起

Mat result(1000, 1000, CV_8UC3); 
Mat firstPart = result(Rect(0, 0, image1.cols, image1.rows)); 
Mat secondPart = result(Rect(deltaX, deltaY, image2.cols+deltaX, image2.rows+deltaY)); 
image1.copyTo(firstPart); 
image2.copyTo(secondPart); 
imshow("result", result); 

图像2只可见的结果,如果DELTAX和移动deltaY是零,我想不通为什么(图像2 + DELTAX < 1000,同为移动deltaY)。

+0

你检查过image2是否复制到image1上吗?如果是这种情况,你必须复制image2与偏移结果 – blejzz 2012-04-01 17:24:51

+0

是的,我评论image1了。将deltaX和deltaY设置为0时,image2显示在左上角,其中一个不等于零,但未显示。 – user765269 2012-04-01 17:33:28

+0

尝试对image2进行注释并查看结果中是否存在image1并回传。 – blejzz 2012-04-01 17:36:01

回答

0

来自android我假设Rect的参数是左,上,右,下,但它们是左边,顶部与宽度和高度配对。因此,它必须是

Rect(deltaX, deltaY, image2.cols, image2.rows) 

,而不是

Rect(deltaX, deltaY, image2.cols+deltaX, image2.rows+deltaY)