试图在OpenCV读取的图像上画线,但没有画线



我构建了一个简单的代码,通过openCV窗口显示图像,并使用setmousecallback函数,我想在打开的cv图像上画一条水平线。然而,即使没有错误警报,图像上也没有显示任何线条。我想我犯了错误,但我知道我找不到。请告诉我为什么不能在"src"图像上划线。

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()

试试这个:

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

最新更新