如何合并两个图像而不会在opencv中丢失亮度

我在opencv中有两个图像: Image AImage B.

图像A是来自相机的输出帧。
图像B是通过掩蔽一个图像而获得的透明图像。
在掩盖Image B之前,它使用cvWarpPerspective()

  • 我尝试过cvAddWeighted() -当你给出alpha和beta值时,它会放松强度
  • 我尝试了aishack -即使在这里你也失去了输出图像的整体强度
  • 我尝试了silveiraneto.net -对我的情况没有帮助
  • 请在混合后输出图像中不失去强度的地方帮助我。

    提前致谢


    当你说,你失去了强度...你留下的问题,你是如何失去它?

    在某种意义上你是否放松了强度:

    当你添加图像时,你会达到最大强度,其余的会被丢弃。 (例如8位像素加法:Pix1 = 200i,Pix2 = 150i。“Pix1 + Pix2 = 350”,但最大值为255,因此Pix1 + Pix2 = 255)

    图像A的前值通过将图像B添加到图像B而受到损害,图像B仅覆盖图像的某些部分。 (8位图像的例子:Pix1 = 200i,Pix2 = 150,(Pix1 + Pix2)/ 2 = 175,但是当第二图像的像素的值为零时,Pix2 = 0。然后(Pix1 + Pix2 )/ 2 = 100,这是原始图像的一半)

    其中一个意见应该告诉你你需要做什么。 根据你提到的功能,我不太清楚他们使用哪种方法。


    我终于得到了答案。它包括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
    

    步骤4

    cvThreshold(neg_img, cpy_img, 0, 255, CV_THRESH_BINARY_INV);
    //cpy_img is a created image from image_n
    

    第5步

    cvAnd(cpy_img,image_n,cpy_img);// image_n is a input image
    cvOr(neg_img,cpy_img,image_n);
    

    输出 - image_n(不失去输入图像的强度)

    链接地址: http://www.djcxy.com/p/89749.html

    上一篇: How to merge two image without losing intensity in opencv

    下一篇: How to create data fom image like "Letter Image Recognition Dataset" from UCI