OpenCV cv2.rectangle输出二进制图像

时间:2016-11-10 10:37:18

标签: python opencv contour

我一直在尝试在黑色图像上绘制矩形,我们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()

它提供以下输出: output image : heir 为什么图像是这样的?为什么边界不仅仅是宽度为5的线。 我试过了,但我无法弄明白。

2 个答案:

答案 0 :(得分:0)

无法在评论中发布此内容,但这是一个否定的答案:在Windows / python 2.7.8 / opencv3.1上我可以使用相同的操作

import numpy as np
import cv2

heir = np.zeros((100,200),np.uint8);
x2=10
y2=20
w2=30
h2=40
cv2.rectangle(heir,(x2,y2),(x2+w2,y2+h2),(255,255,0),5)
cv2.imshow("img",heir);
cv2.waitKey()

enter image description here

答案 1 :(得分:0)

因为您要加载要标记的图像(绘制矩形),因此当您添加矩形/边界框时,颜色将转换为灰度。

要解决此问题,请以“颜色”格式打开图片。既然,你没有包含那部分代码,这里是建议的解决方案:

tag_img     = cv2.imread(MYIMAGE,1)

此处注意第二个参数,即“1”,表示将图像加载为颜色。阅读更多有关阅读图片的信息:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_image_display/py_image_display.html