Я пытаюсь нарисовать заполненный на 10% прямоугольник с помощью opencv, поэтому у меня была идея сначала выбрать две точки поверх изображения, которое будет содержать первый треугольник, с помощью обратного вызова мыши, а затем нарисовать заполненный, используя две точки вот код, который я использовал
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()
Но, к сожалению, это не так, оно даже не показывает изображение, любые предложения, пожалуйста