我在opencv中有两张图片:图片A 和图片B 。
图像A 是相机的输出帧
图像B 是通过屏蔽一个图像获得的Alpha透明图像
在屏蔽图像B 之前,它会被cvWarpPerspective()
cvAddWeighted()
- 当你给出alpha和beta值时它会失去强度请帮助我解决混合后输出图像中没有强度损失的问题。
提前致谢
答案 0 :(得分:2)
当你说,你失去了强度......你留下的问题,你如何失去它?
你是否在某种意义上放松了强度:
当您添加图像时,您会达到最大强度,其余部分将被丢弃。 (8位像素加法示例:Pix1 = 200 i,Pix2 = 150 i。“Pix1 + Pix2 = 350”但最大值为255,所以Pix1 + Pix2 = 255)
通过将图像A的前一个值添加到图像B(它仅覆盖图像的某些部分),它会受到影响。 (8位图像的示例:Pix1 = 200 i,Pix2 = 150,(Pix1 + Pix2)/ 2 = 175,但是当第二图像的像素值为零时,Pix2 = 0.然后(Pix1 + Pix2) )/ 2 = 100,这是原始图像值的一半)
其中一个观察结果应告诉您需要做什么。 根据你提到的功能,我不太清楚他们使用哪种方法。
答案 1 :(得分:2)
我终于得到了答案。它包括5个步骤......
步骤1
cvGetPerspectiveTransform(q,pnt,warp_matrix);
//where pnt is four point x and y cordinates and warp_matrix is a 3 x 3 matrix
步骤2
cvWarpPerspective(dst2, neg_img, warp_matrix,CV_INTER_LINEAR)
//dst2 is overlay image ,neg_img is a blank image
步骤3
cvSmooth(neg_img,neg_img,CV_MEDIAN); //smoothing the image
Step - 4
cvThreshold(neg_img, cpy_img, 0, 255, CV_THRESH_BINARY_INV);
//cpy_img is a created image from image_n
Step - 5
cvAnd(cpy_img,image_n,cpy_img);// image_n is a input image
cvOr(neg_img,cpy_img,image_n);
输出 - image_n(不会丢失输入图像的强度)