猿问

在 PNG 图像上画一条线 OpenCV2 Python

如何使用opencv在rgba(.png)图像上添加彩色线?


我尝试跟随,但绘制的线条是透明的。


import cv2

image = cv2.imread("/content/drive/My Drive/universe-fg.png",-1)

from google.colab.patches import cv2_imshow


image2 = cv2.resize(image,(150,150))

cv2.line(image2, (20, 30), (100, 80), (255, 255, 0), 10)

cv2_imshow(image2)

结果:

使用 cv2 版本 4.1.2



缥缈止盈
浏览 82回答 1
1回答

慕妹3242003

您的错误是您需要在线条颜色中指定不透明的 alpha 值。因此使用 (255, 255, 0, 255) 而不是 (255, 255, 0)。当未指定时,后者假定值为 0(透明)。下面是如何在 Python/OpenCV 中做到这一点。输入:import cv2import numpy as np# load transparent imageimg = cv2.imread('blue_circle.png', cv2.IMREAD_UNCHANGED)hh, ww = img.shape[:2]# draw colored line as opaqueresult = img.copy()cv2.line(result, (20, 30), (100, 80), (255, 255, 0, 255), 10)# save resultcv2.imwrite('blue_circle_line.png', result)# display result, though it won't show transparencycv2.imshow("IMAGE", img)cv2.imshow("RESULT", result)cv2.waitKey(0)cv2.destroyAllWindows()
随时随地看视频慕课网APP

相关分类

Python
我要回答