2

我已经缝合了两个图像,但在最终图像中有一个可见的接缝。我正在尝试使用Alpha 混合来去除该接缝。我知道使用该cvAddweight()函数应用 Alpha 混合,但在此函数参数是两个图像,alphabetagamma和 desitination 。我正在服用gamma=0, alpha=0.6, beta=0.4. 作为我的代码的最后一部分,我的两个输入源图像和目标图像将是什么->

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);

我的最终图像是在此处输入图像描述

4

2 回答 2

0

金字塔/多波段混​​合应该为您的场景做得足够好。尝试 enblend:http ://enblend.sourceforge.net

于 2013-01-08T23:50:49.927 回答
0

我不得不承认,我不认为 alpha blending 是你的答案。由于照明/曝光的差异,似乎存在。Alpha 混合是一种通过将两幅图像的颜色加权平均,本质上使一幅图像透过另一幅图像可见的方法。您的左右图像以黑色为背景。如果您只是简单地进行 alpha 混合,那么您实际上将使用黑色背景对图像进行加权。由此产生的效果将只是两个图像的变暗。

2 种潜在的其他方法可能是查看两幅图像的平均颜色,并将其中一个向上或向下调整亮度差异的 50%,将另一个调整为另一个 50%(一个上升,另一个下降,而 50% 使得整体亮度跳跃只有 50% 的差异)。

另一个可能会使用更复杂的图像直方图技术,您可以尝试将一侧图像的直方图扩大或缩小到另一侧并对齐它们,并通过新的直方图重新分配颜色(在这种情况下为灰度)。

于 2012-06-04T17:54:00.253 回答