图像拼接神器[OpenCV Python]

时间:2016-07-29 11:47:08

标签: python opencv

我正在使用OpenCV拼接多个图像。它开始起作用,但我有一件事有问题。在cv2.warpPerspective图像具有“软”边框后,这意味着计算出的蒙版是一个像素太大。

我的代码:

    # apply a perspective warp to stitch the images
    # together
    result = cv2.warpPerspective(imageA, H,
        (imageA.shape[1] + imageB.shape[1], imageA.shape[0]))

    # Now create a mask of logo and create its inverse mask also
    img2gray = cv2.cvtColor(result,cv2.COLOR_BGR2GRAY)
    ret, mask = cv2.threshold(img2gray, 0, 255, cv2.THRESH_BINARY)
    mask_inv = cv2.bitwise_not(mask)

    resizedB = np.zeros((result.shape[0],result.shape[1],3), np.uint8)
    resizedB[0:imageB.shape[0], 0:imageB.shape[1]] = imageB
    difference = cv2.bitwise_or(resizedB,result, mask=mask_inv)

    result = cv2.add(result,difference)
    cv2.imwrite('result .jpg', result)

我必须使用cv2.bitwise_or,因为使用cv2.add添加两个图像会使其太亮,导致连接处几乎为黑线。 你知道如何解决这个问题吗?也许有办法修改掩码使其缩小1个像素?

1 个答案:

答案 0 :(得分:0)

我终于通过使用几个逻辑运算的组合解决了这个问题。解决方案如下:

users