Попытка нарисовать линию на изображении, которое читается OpenCV, но линия не рисуется - PullRequest
0 голосов
/ 27 февраля 2020

Я строю простой код, который показывает изображение через окно openCV и, используя функцию setmousecallback, я хочу нарисовать горизонтальную линию на изображении open cv. Однако, несмотря на отсутствие сообщения об ошибке, на изображении не было показано ни одной строки. Я думаю, что сделал ошибку, но, как я знаю, я не могу найти. пожалуйста, дайте мне знать, почему на изображении "sr c" нельзя нарисовать линию.

import cv2 
import numpy as np 

x_start, y_start, x_end, y_end = -1,-1,-1,-1
drawing = False

def line_draw(event, x,y, flags, param):

    global x_start, y_start, x_end, y_end, drawing  

    if event == cv2.EVENT_LBUTTONDOWN:
        drawing = True
        x_start, y_start = x,y
        print("up")
    elif event == cv2.EVENT_MOUSEMOVE:
        if drawing == True:
            cv2.line(src,(10,y),(500,y),(255,0,0),1)
            print("move")

    elif event == cv2.EVENT_LBUTTONUP:
        drawing = False
        cv2.line(src,(10,y),(500,y),(255,0,0),1)
        print("up")


src = cv2.imread("d:/sample.jpg")
cv2.namedWindow("image_window")
cv2.imshow("image_window", src)
cv2.setMouseCallback("image_window", line_draw)

cv2.waitKey(0)
cv2.destroyAllWindows()

1 Ответ

0 голосов
/ 27 февраля 2020

Попробуйте это:

...
...
    elif event == cv2.EVENT_MOUSEMOVE:
        if drawing == True:
            src = cv2.line(src,(10,y),(500,y),(255,0,0),1)
            print("move")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...