首页 > 解决方案 > Opencv addWeighted 到同一个矩阵

问题描述

所以我有以下目标,我想做一个 addWeighted 到与输入之一相同的 np_array 。所以没有返回调整后的框架。

    def function(frame):
        polygon_overlay = np.zeros(frame.shape, dtype=np.uint8)
        cv2.fillPoly(polygon_overlay, polygon, color, 8, 0)

        frame = cv2.addWeighted(frame, .5, polygon_overlay, .5, 0)

    frame = cv2.imread('someImg.ext')
    function(frame)
    cv2.imshow('result', frame)
    

所以在这个例子中,显示的框架应该显示多边形。我知道这应该是可能的,因为这段代码确实有效。

    def function(frame):
        cv2.fillPoly(frame, polygon, color, 8, 0)

    frame = cv2.imread('someImg.ext')
    function(frame)
    cv2.imshow('result', frame)

我怀疑这应该可以通过某种 numpy 替换方法实现,但我不知道如何。

标签: pythonopencv

解决方案


事实证明这很容易:

def function(frame):
    polygon_overlay = np.zeros(frame.shape, dtype=np.uint8)
    cv2.fillPoly(polygon_overlay, polygon, color, 8, 0)

    frame[0:frame.shape[0], 0:frame.shape[1]]  = cv2.addWeighted(frame, .5, polygon_overlay, .5, 0)

frame = cv2.imread('someImg.ext')
function(frame)
cv2.imshow('result', frame)

推荐阅读