为什么用opencv在圆圈外面绘制的矩形没有显示?

时间:2018-05-07 09:28:47

标签: python opencv image-processing computer-vision

我想在圆圈外面放一个矩形边框。

image

我有一个深度图像,我有x,y和r。从那里,我画圆圈,我想在圆圈外面创建一个矩形边界框。但每次它只向我展示圆圈。

以下是我的代码:

images = glob.glob(--image path--)
gt_boxes = open(--ground truth location--, 'r+')
data = list(zip(images, gt_boxes))
df1 = pd.DataFrame(data)
for n in range(0,len(data)):

   img = cv2.imread(df1.iloc[n][0],0)

   id1 = df1[1][n]
   id_1, x, y, r = [int(x) for x in id1.split()]

   print(df1.iloc[n][0],id_1)
   img1 = cv2.circle(img,(x,y), r, (0,255,255), 1)
   #print(df1.iloc[n][0],id_1)
   x1 = x-r
   y1 = y+r
   w1 = 2*r
   h1 = 2*r
   print(x1,y1,w1,h1)
   rect = cv2.rectangle(img,(x1,y1),(x1+w1,y1+h1),(0,255,255),3)
   cv2.imshow("rectangle",rect)
   cv2.waitKey(50)
   key = cv2.waitKey(0) & 0xFF
   if key == ord("q"):
     break

cv2.destroyAllWindows()

1 个答案:

答案 0 :(得分:0)

而不是使用: rect = cv2.rectangle(img,(x1,y1),(x1+w1,y1+h1),(0,255,255),3)

执行命令 cv2.rectangle(img,(x1,y1),(x1+w1,y1+h1),(0,255,255),3)

然后在img上运行imshow()

另一个原因可能是灰色通道图像仅拾取B颜色对象的(0,255,255)组件,因此绘制了矩形,但不可见