我缝了两张图片,但在最终图片中有一个可见的缝。我正在尝试使用 Alpha混合来移除该接缝。我知道使用cvAddweight()
函数应用Alpha混合,但在此功能参数是两个图像, alpha , beta , gamma 和desitination。我正在gamma=0
,alpha=0.6
,beta=0.4
。我的两个输入源图像和目标图像作为我的代码的最后一部分是this->
IplImage* WarpImg = cvCreateImage
(cvSize(T1Img->width*2, T1Img->height*2), T1Img->depth, T1Img- >nChannels);
cvWarpPerspective(T1Img, WarpImg, &mxH);
cvSetImageROI(WarpImg, cvRect(0, 0, T2Img->width, T2Img->height));
cvCopy(T2Img, WarpImg);
cvResetImageROI(WarpImg);
cvNamedWindow("WarpImg Img",1);
cvShowImage("WarpImg Img", WarpImg);
cvSaveImage("save.jpg",WarpImg);
我的最终图片是
答案 0 :(得分:0)
我不得不承认,我不认为alpha混合是你的答案。由于照明/曝光的不同,似乎存在。通过将两个图像颜色加权平均在一起,α混合是一种基本上使一个图像通过另一个可见的方式。您的右侧和左侧图像由黑色支持。如果你只是alpha混合,那么你基本上是用黑色背景加权你的图像。由此产生的效果只会使两幅图像变暗。
2种潜在的其他方法可能是看看两个图像的平均颜色,并将亮度差异的50%上调或下调,另一个相反的另外50%(一个上升)而另一个向下和50%使得整体亮度跳跃只是差异的50%。
另一个可能会执行更复杂的图像直方图技术,您尝试将一侧图像的直方图加宽或缩小到另一侧并对齐它们,并重新对齐您的颜色(在本例中为灰度)新直方图。
答案 1 :(得分:0)
金字塔/多波段混合应该为你的场景做足够好的工作。试试enblend:http://enblend.sourceforge.net