python如何将图像随机分布_如何使用opencv在python中对图像进行自由形状(随机)

您询问如何使用计算机的鼠标在图片上绘制任何给予者随机形状.这是一个简单的解决方案:

首先,您需要设计一个可以绘制的方法.因此,让我们从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()

演示:

890b14a04e6d71b633de79edf38e6d25.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值