python - 如何在opencv中显示轮廓或形态变化的图像
问题描述
img = cv2.imread("/Users/meenakshi/Desktop/lala.jpg")
img=cv2.resize(img,(1200,700))
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
binary = cv2.inRange(gray,65,255)
image,contours,hierarchy = cv2.findContours(binary.copy(),cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
cnt = max(contours, key= lambda x: cv2.contourArea(x))
cv2.imshow("Radar", cnt)
cv2.waitKey(0)
epsilon = 0.0005*cv2.arcLength(cnt,True)
cnt = cv2.approxPolyDP(cnt,epsilon,True)
M = cv2.moments(cnt)
cX = int(M["m10"]/M["m00"])
cY = int(M["m01"]/M["m00"])
cv2.circle(cnt,(cX,cY),7,(0,255,0),-1)
这是我的代码,我想看到带有矩圆的最终轮廓图像,但是当我给出
cv2.imshow("Image", cnt)
cv2.waitKey(0)
错误显示为
(-15:Bad number of channels) Source image must have 1, 3 or 4 channels in function 'cvConvertImage'
我应该怎么办?
解决方案
cv2.circle(cnt,(cX,cY),7,(0,255,0),-1)
在具有最大面积的轮廓上创建一个圆圈。如果你想在原始图像上看到一个圆圈,你可以传递 img 而不是 cnt
cv2.circle(img,(cX,cY),7,(0,255,0),-1)
cv2.imshow("Image", img)
推荐阅读
- python - ImportError:无法从“pandas”导入名称“DtypeArg”
- python-3.x - 构建一个数据库 url 以将 fastapi 连接到我的本地 postgresql 数据库
- java - 无法在 Java 中解析 JWK
- angular - 我无法从 component.html 文件中获取完整的文件路径
- python - 如何在多个csv文件中添加所有计数行
- ruby-on-rails - Rails RABL:如何使用指定的 http 状态码响应?
- elasticsearch - 在弹性中按时间插入数据
- r - 用 ggplot 生成曼哈顿图
- answer-set-programming - Clingo:如何做“如果 p 导致 UNSAT 则 q”。
- c# - 如何在 NET 5 MVC 中使用单元格作为输入来更新数据