Python OpenCV drawContours是';储蓄

Python OpenCV drawContours是';储蓄,python,opencv,Python,Opencv,我有一个RGBA图像,我想为其绘制轮廓,并与绘制的轮廓一起保存。 我有以下代码: skin = cv.imread("-path-", cv.IMREAD_UNCHANGED) _, mask = cv.threshold(skin[:, :, 3], 0, 255, cv.THRESH_BINARY) contours, hierarchy = cv.findContours(mask, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE) largest_cont

我有一个RGBA图像,我想为其绘制轮廓,并与绘制的轮廓一起保存。 我有以下代码:

skin = cv.imread("-path-", cv.IMREAD_UNCHANGED)

_, mask = cv.threshold(skin[:, :, 3], 0, 255, cv.THRESH_BINARY)

contours, hierarchy = cv.findContours(mask, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)

largest_contour = max(contours, key=cv.contourArea)

skin = cv.drawContours(skin, [largest_contour], 0, (0, 255, 0), 3)
如果我使用

cv.imshow("-title-", skin)
我可以看到轮廓,但如果我看到:

cv.imwrite("-path-", skin)
将保存原始图像

如何保存绘制了轮廓的图像


它与原始图像的透明度有关,在OpenCV中轮廓是

,您有cv2.imwrite()函数

存储将轮廓转换为变量的图像

比方说

new_skin = drawContours(skin,[largest_contour], 0, (0, 255, 0), 3) # store in new variable
cv2.imwrite("newskin.png",new_skin) # save to file

尝试将图像保存到本地。

这是轮廓的透明度,我不知道为什么,但在发布后它在我身上闪闪发光

解决方案是添加以下行:

skin[:, :, 3] = cv.drawContours(skin[:, :, 3].astype(np.uint8), [largest_contour], 0, (255), 3)