gpt4 book ai didi

python - DrawContours()不工作opencv python

转载 作者:太空宇宙 更新时间:2023-11-03 21:58:21 26 4
gpt4 key购买 nike

我正在研究在 opencv python 中查找和绘制轮廓的示例。但是当我运行代码时,我只看到一个没有绘制轮廓的黑色窗口。我不知道我哪里错了。代码是:

import numpy as np
import cv2
im = cv2.imread('test.png')
imgray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
img=cv2.drawContours(image,contours,0,(0,255,0),3)
cv2.imshow('draw contours',img)
cv2.waitKey(0)

test.png 只是一个黑色背景的白色矩形。

如有任何帮助,我们将不胜感激。

编辑:我正在使用 Opencv 3.0.0 和 Python 2.7

最佳答案

我认为问题出在 drawContours 命令上。正如目前所写,图像目标是 imageimg。您还试图在单 channel 8 位图像上绘制彩色框。另外,值得注意的是,findContours 函数在寻找轮廓的过程中实际上修改了输入图像,因此最好不要在后面的代码中使用该图像。

如果您打算对图像进行进一步分析,我还建议创建一个新的图像副本以设置为 drawContours 函数的目标,这样您就不会覆盖唯一的副本您的程序当前具有访问权限。

import numpy as np
import cv2

im = cv2.imread('test.png')
imCopy = im.copy()
imgray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(imCopy,contours,-1,(0,255,0))
cv2.imshow('draw contours',imCopy)
cv2.waitKey(0)

这两个快速修复对我在白色背景的黑色方 block 的类似图像上起作用。

关于python - DrawContours()不工作opencv python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31475634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com