本文將為您詳細介紹如何使用opencv在原始圖片上進行鼠標繪圖。
一、準備工作
在開始繪製之前,您需要先準備好以下的工作:
1、安裝opencv庫,可以通過pip install opencv-python命令進行安裝。
2、導入opencv庫和matplotlib庫,以實現在圖片中實時繪製。
import cv2
import matplotlib.pyplot as plt
二、鼠標響應事件
當我們在圖片上點擊鼠標時,需要響應該事件來實現繪圖操作。
def draw(event, x, y, flags, params):
if event == cv2.EVENT_LBUTTONDOWN:
cv2.circle(img,(x,y),5,(255,0,0),-1)
該函數為鼠標響應函數,當檢測到鼠標左鍵按下並釋放時,即為鼠標繪圖操作。
參數說明:
event:檢測到的鼠標事件類型。
x,y:鼠標點擊的位置坐標。
flags:附加的鼠標事件信息。
params:傳遞給鼠標事件處理函數的參數。
三、繪製
在完成鼠標響應事件後,我們需要開闢一個窗口來顯示圖片,並在其中響應繪圖操作。
img = cv2.imread('img.jpg')
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw)
while(1):
cv2.imshow('image',img)
k = cv2.waitKey(1) & 0xFF
if k == 27:
break
cv2.destroyAllWindows()
該代碼段實現以下操作:
1、讀入圖片。
2、創建一個窗口並綁定響應函數。
3、顯示圖片並等待鼠標響應。
4、按下ESC鍵退出程序。
注意:
由於cv2.imshow函數的不易適用性,我們在使用matplotlib.pyplot的imshow函數實現等同的功能。
img = cv2.imread('img.jpg')
plt.imshow(img)
plt.setMouseCallback('image', draw)
while(1):
plt.imshow(img)
plt.show(block=False)
plt.pause(0.001)
plt.close()
四、小結
本文介紹了如何通過opencv在原始圖片上進行鼠標繪圖,並提供了完整的代碼示例。
對於讀者們,建議多嘗試不同的對象繪製方式和參數,從而更好的理解opencv庫和鼠標響應事件的使用。
原創文章,作者:TKUIK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/373448.html