要在我需要绘制在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 triangulatePoints
- 2. 如何使用opencv flann :: Index?
- 3. 如何使用Opencv SparseMatrix
- 4. 如何使用OpenCV与Qt5
- 5. 如何使用OpenCV MatchTemplate?
- 6. 如何使用OpenCV的用VB.NET 2008
- 7. 如何使用brython使用OpenCV python库
- 8. 如何检测使用的OpenCV +蟒蛇
- 9. 如何使用OpenCV的相机
- 10. 如何使用OpenCV的蟒蛇
- 11. 如何使用opencv中的函数?
- 12. 如何在opencv中使用fred的imagemagick textcleaner脚本C++/opencv java?
- 13. 如何使热图使用python和OpenCV
- 14. 使用OpenCV的
- 15. 使用的OpenCV
- 16. 使用OpenCV的
- 17. 使用的OpenCV
- 18. 使用OpenCV的
- 19. 如何混合使用OpenCV 1.0和OpenCV 2.0
- 20. 如何在opencv中使用cvDCT()?
- 21. 如何配置Makefile以使用OpenCV
- 22. 如何使用OpenCV cvProjectPoints2函数
- 23. 如何在opencv 2.4中使用SIFT
- 24. 如何使用opencv垫预留?与push_back
- 25. 如何在Java中使用opencv BOWKMeansTrainer?
- 26. 如何使用opencv创建HDR图像
- 27. 如何在Python中使用OpenCV cornerSubPix()?
- 28. Python OpenCV 3:如何使用cv2.CV_COMP_HELLINGER
- 29. 如何在Android NDK中使用OpenCV BOWImgDescriptorExtractor?
- 30. 如何在OpenCV Android中使用createTrackBar()?
你想要什么类型的随机形状的画? – ZdaR
**任何形状的矩形,圆形或任何不规则的形状** – Neenu