OpenCV cv2.rectangle 输出二值图像
OpenCV cv2.rectangle output binary image
我一直在尝试在黑色图像上绘制矩形,uscv2.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()
它给出了以下输出:
为什么图像是这样的?为什么边界不仅仅是一条宽度为 5 的线。
我已经试过了,但我无法弄明白。
不能在评论中post这个,但这是一个否定的答案:同样的操作对我在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()
因为您正在以灰度加载要标记的图像(绘制矩形),所以当您添加 rectangles/bounding 框时,颜色会转换为灰度。
要解决此问题,请以 "color" 格式打开图像。由于您没有包含那部分代码,这里是建议的解决方案:
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
我一直在尝试在黑色图像上绘制矩形,uscv2.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()
它给出了以下输出:
不能在评论中post这个,但这是一个否定的答案:同样的操作对我在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()
因为您正在以灰度加载要标记的图像(绘制矩形),所以当您添加 rectangles/bounding 框时,颜色会转换为灰度。
要解决此问题,请以 "color" 格式打开图像。由于您没有包含那部分代码,这里是建议的解决方案:
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