python draw.rectangle_如何改变盒子的不透明度(cv2.rectangle)?

编辑:虽然我的解决方案可能有效,但我强烈建议使用ZdaR's answer,因为它在正确混合方框与底层子图像方面能提供更好的结果。在

至少在我看来,像cv2.rectangle这样的内置函数不支持不透明性,即使在BGRA图像上,请参见here。所以,正如我在链接的答案中所描述的,唯一可能实现的,就是使用^{}函数。在

例如:import cv2

import numpy as np

# Load image

img = cv2.imread('images/paddington.png')

# Initialize black image of same dimensions for drawing the rectangles

blk = np.zeros(img.shape, np.uint8)

# Draw rectangles

cv2.rectangle(blk, (5, 5), (100, 75), (255, 255, 255), cv2.FILLED)

# Generate result by blending both images (opacity of rectangle image is 0.25 = 25 %)

out = cv2.addWeighted(img, 1.0, blk, 0.25, 1)

cv2.imshow('Image', img)

cv2.imshow('Rects', blk)

cv2.imshow('Output', out)

cv2.waitKey(0)

cv2.destroyAllWindows()

最初的帕丁顿img:

在blk上绘制矩形的中间图像:

python draw.rectangle_如何改变盒子的不透明度(cv2.rectangle)?_第1张图片

最后的结果是out:

python draw.rectangle_如何改变盒子的不透明度(cv2.rectangle)?_第2张图片

在绘制矩形并混合图像后,您可以像以前一样添加文本。在

希望有帮助!在

你可能感兴趣的:(python,draw.rectangle)