用opencv做影像拼接时的代码:
IplImage* xformed;
xformed = cvCreateImage( cvSize(img1->width + img2->width - 100, MAX(img1->height + 20, img2->height) ), IPL_DEPTH_8U, 3 ); 
cvWarpPerspective( img1, xformed, H, CV_INTER_CUBIC + CV_WARP_FILL_OUTLIERS,cvScalarAll( 0 ) );
cvSetImageROI(xformed, cvRect(0, 0, img2->width, img2->height) );
cvAddWeighted(img2, 1, xformed, 0, 0, xformed);
cvResetImageROI( xformed );
【问题】:拼接图里出现了中间的黑带,应该是cvAddWeighted(img2, 1, xformed, 0, 0, xformed);中权值不同引起,主要是img1中右侧出现黑边(上次拼接开辟的影像区域过大造成)拼接时,左边权值为1,所以该位置的黑边存在,不知在opencv如何消除图中的黑边问题,谢谢各位大牛了!也可以Email我:[email protected]
影像如下: