【发布时间】:2017-03-24 08:32:36
【问题描述】:
我一直在尝试在黑色图像上绘制矩形,我们cv2.rectangle。这是我的代码:(这只是一个示例,在实际代码中存在一个循环,即值 x2、y2、w2、h2 变化一个循环)
heir = np.zeros((np.shape(image1)[0],np.shape(image1)[1]),np.uint8);
cv2.rectangle(heir,(x2,y2),(x2+w2,y2+h2),(255,255,0),5)
cv2.imshow("img",heir);
cv2.waitKey()
【问题讨论】:
-
这是来自 imshow 的屏幕截图吗?原始图像的分辨率是否远更高(例如 5x?),因此在图像被下采样显示时线条会丢失吗?如果您在较小的图像上执行这些操作会发生什么?
-
感谢您的评论。不,事实并非如此。它是全尺寸图像。我没有进行任何处理(下采样或上采样)。这是imwrite版本
-
x2,y2,w2,h2 的典型值是多少?
-
使用 np.zeros 创建继承人时,您会创建单层 np.uint8 作为数据类型 - 这是否意味着您有 8 位像素,(255,255,0)如何映射到这个时你画矩形?即你不应该使用 np.zeros((np.shape(image1)[0],np.shape(image1)[1],3),dtype=np.uint8) - 添加 3,使用显式命名参数)
-
我只想要二进制图像。轮廓不一定是彩色的。它可以是白色的。实际上我用 cv2.contours 做了完全相同的事情,它给了我输出。我不知道 cv2.rectangle 有什么问题