我正在尝试使用opencv绘制一个10%填充的矩形,所以我有一个想法是首先使用鼠标回调在将包含第一个三角形的图像上选择两个点,然后使用两个点绘制一个填充的点这是我使用的代码
import numpy as np
import cv2
import glob
class ObstacleDrawer():
def __init__(self):
self.pp =[]
def callback(self,event, x, y, flags, param):
if event == 1: self.pp.append((x,y))
def run(self):
cv2.namedWindow('img')
cv2.setMouseCallback('img', self.callback)
while True:
for image in glob.glob('/home/aub/myflower/flower_photos/dandelion/*.jpg'):
img = cv2.imread(image)
xs = [p[0] for p in self.pp]
ys = [p[1] for p in self.pp]
cv2.rectangle(img, (xs[0], (ys[0]-ys[1])/2), (xs[1], (ys[0]-ys[1])/2 + (ys[0]-ys[1])/10), (0, 0, 255), cv2.FILLED)
cv2.imshow('img', img)
if __name__ == "__main__":
z = ObstacleDrawer()
image = z.run()
但是不幸的是,它没有,甚至没有显示图像,请提供任何建议