要在我需要繪製在python-OpenCV的如何使用OpenCV的
3
A
回答
6
您問過如何使用計算機的鼠標在圖片上繪製任意發送者的隨機形狀。這是一個簡單的解決方案:
首先,您需要設計一種方法,使您可以繪製。所以讓我們從OpenCV: Mouse as a Paint-Brush中激發我們自己的靈感,其中一種方法用於使用鼠標繪製常見的常規形狀,例如圓形或矩形。在你的情況下,你將需要隨機繪圖,就像你可以用你的手一樣。
因此,使用這種方法,你可以用鼠標畫點,並使用cv2.line()
方法來執行它們之間的interpolation:
cv2.line(im,(current_former_x,current_former_y),(former_x,former_y),(0,0,255),5)
哪裏im
是你讀的形象,而你必須記住鼠標的前座標所有在位時間:
current_former_x = former_x
current_former_y = former_y
全部OpenCV的程序:
這裏代碼。不要猶豫,評論任何你想不明白:
'''
Created on Apr 3, 2016
@author: Bill BEGUERADJ
'''
import cv2
import numpy as np
drawing=False # true if mouse is pressed
mode=True # if True, draw rectangle. Press 'm' to toggle to curve
# mouse callback function
def begueradj_draw(event,former_x,former_y,flags,param):
global current_former_x,current_former_y,drawing, mode
if event==cv2.EVENT_LBUTTONDOWN:
drawing=True
current_former_x,current_former_y=former_x,former_y
elif event==cv2.EVENT_MOUSEMOVE:
if drawing==True:
if mode==True:
cv2.line(im,(current_former_x,current_former_y),(former_x,former_y),(0,0,255),5)
current_former_x = former_x
current_former_y = former_y
#print former_x,former_y
elif event==cv2.EVENT_LBUTTONUP:
drawing=False
if mode==True:
cv2.line(im,(current_former_x,current_former_y),(former_x,former_y),(0,0,255),5)
current_former_x = former_x
current_former_y = former_y
return former_x,former_y
im = cv2.imread("darwin.jpg")
cv2.namedWindow("Bill BEGUERADJ OpenCV")
cv2.setMouseCallback('Bill BEGUERADJ OpenCV',begueradj_draw)
while(1):
cv2.imshow('Bill BEGUERADJ OpenCV',im)
k=cv2.waitKey(1)&0xFF
if k==27:
break
cv2.destroyAllWindows()
演示:
2
這個例子用鼠標騰出手形(隨機)的區域施加邊界填制在蟒蛇的圖像上的免費手的形狀(隨機)來自OpenCV的樣本目錄,可以畫一個任意矩形圖像中,選擇投資回報率:
https://github.com/Itseez/opencv/blob/master/samples/python/mouse_and_match.py
您可以輕鬆地添加替代繪製圓形或多邊形來代替,如先按一個字母。
相關問題
- 1. 如何使用OpenCV的
- 2. OpenCV的:如何使用createBackgroundSubtractorMOG
- 3. 如何使用OpenCV的
- 4. 如何使用opencv和engine.h
- 5. 如何使用OpenCV triangulatePoints
- 6. 如何使用Opencv SparseMatrix
- 7. 如何使用opencv flann :: Index?
- 8. 如何使用OpenCV MatchTemplate?
- 9. 如何使用OpenCV與Qt5
- 10. 如何使用OpenCV的用VB.NET 2008
- 11. 如何使用brython使用OpenCV python庫
- 12. 如何使用Android的OpenCV的
- 13. 如何使用OpenCV的蟒蛇
- 14. 如何使用opencv中的函數?
- 15. 如何使用OpenCV的直方圖?
- 16. 如何使用OpenCV的在Django?
- 17. 如何使用OpenCV的相機
- 18. 如何檢測使用的OpenCV +蟒蛇
- 19. 如何在opencv中使用fred的imagemagick textcleaner腳本C++/opencv java?
- 20. 如何使熱圖使用python和OpenCV
- 21. 使用OpenCV的
- 22. 使用OpenCV的
- 23. 使用OpenCV的
- 24. 使用的OpenCV
- 25. 使用的OpenCV
- 26. 使用OpenCV的
- 27. 使用OpenCV的
- 28. 使用OpenCV的
- 29. 使用OpenCV的
- 30. 使用OpenCV的
你想要什麼類型的隨機形狀的畫? – ZdaR
**任何形狀的矩形,圓形或任何不規則的形狀** – Neenu