OpenCV无法画出圆形 - Python

4
这是什么问题 - 为什么它不会在我创建的窗口中绘制圆形?
    threeDWinName = "3D View"
    cv2.namedWindow(threeDWinName, cv2.CV_WINDOW_AUTOSIZE)
    img2 = cv2.imread('white.png', 0)
    cv2.imshow(threeDWinName,img2)
    cv2.circle(img2, (100,100),100,255,-1)
    cv2.imshow(threeDWinName,img2)
1个回答

7

你的代码对我起作用。我看到你正在读取的文件名为white.png,并且通过使用0进行加载,你在以灰度方式加载它,所以你绘制的圆也是白色的。这可能就是问题所在 ;)

img2 = cv2.imread('black.png', 0)
cv2.circle(img2, (100,100),100,255,-1)
cv2.imwrite('circle.png', img2)

输入图片描述

如果你使用img2 = cv2.imread('black.png'),那么你会得到这个结果:

输入图片描述


再次感谢你的帮助。为什么蓝色圆形的灰度表示会变白?我放弃了尝试制作背景,因为我无法让圆形绘图函数正常工作,所以我想使用自己的背景图像。我知道这不是很有效率... - Sam Heather
@Sam Heather - 嗨,很高兴能帮忙。对于灰度图像,0到255之间的值是灰色阴影,从黑色到白色。对于彩色图像,通常您会传递一个由三个值组成的元组,例如(255,0,0)。这表示每个通道蓝色、绿色和红色(或BGR)的亮度。但在您的情况下,您只传递了一个值,函数将其解释为第一个(蓝色)通道的值。如果您传递(0,0,255),您将得到一个红色圆圈。尝试更改值以生成不同的颜色。 - fraxel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接