Python图像处理之简单画板实现方法示例

 更新时间:2018年08月30日 10:51:22   作者:老司机的诗和远方  
这篇文章主要介绍了Python图像处理之简单画板实现方法,结合实例形式分析了Python基于cv2模块与numpy模块的数值计算及矩形图形绘制简单操作技巧,需要的朋友可以参考下

本文实例讲述了Python图像处理之简单画板实现方法。分享给大家供大家参考,具体如下:

Python图像处理也是依赖opencv的Python接口实现的,Python语言简单易懂,简洁明了。本次实现画板涂鸦,一个是在里面画矩形,还有画线。其他也都可以扩展,本案例只做例程,思路是对鼠标事件的处理,以及滚动条调节颜色处理。鼠标事件就包含有左键按下,以及释放事件的处理。

import cv2
import numpy as np
# null function
def nothing(x):
  pass
Drawing = False
Mode = True
IX,IY = -1,-1
def drawCircle(Event,X,Y,Flags,Param):
  R = cv2.getTrackbarPos('R','Image')
  G = cv2.getTrackbarPos('G','Image')
  B = cv2.getTrackbarPos('B','Image')
#get color value
  Color = (B,G,R);
  global IX,IY,Drawing,Mode
  if Event == cv2.EVENT_LBUTTONDOWN:
    Drawing = True
    IX,IY = X,Y
  elif Event == cv2.EVENT_MOUSEMOVE and Flags == cv2.EVENT_FLAG_LBUTTON:
    if Drawing == True:
      if Mode == True:
        cv2.rectangle(Img,(IX,IY),(X,Y),Color,-1)
      else:
        cv2.circle(Img,(X,Y),3,Color,-1);
  elif Event == cv2.EVENT_LBUTTONUP:
    Drawing = False
#create image with 3 chanels
Img = np.zeros((660,660,3),np.uint8)
#create window
cv2.namedWindow('Image')
#create track bar, range for 0~255
cv2.createTrackbar('R','Image',0,255,nothing)
cv2.createTrackbar('G','Image',0,255,nothing)
cv2.createTrackbar('B','Image',0,255,nothing)
#set mouse ack
cv2.setMouseCallback('Image',drawCircle)
while(1):
  cv2.imshow('Image',Img)
  k = cv2.waitKey(10)&0xFF
  #switch draw mode
  if k == ord('m'):
    Mode = not Mode
  elif k == 27:
    break
#you must destroy all of sources
cv2.destroyAllWindows()

最后的效果图如下:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python对CSV、Excel、txt、dat文件的处理

    Python对CSV、Excel、txt、dat文件的处理

    本文介绍的是Python对CSV、Excel、txt、dat文件的处理,具有一定的参考价值,需要的朋友跟随小编一起来看下
    2018-09-09
  • 查看keras的默认backend实现方式

    查看keras的默认backend实现方式

    这篇文章主要介绍了查看keras的默认backend实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • pycharm2020.1.2永久破解激活教程,实测有效

    pycharm2020.1.2永久破解激活教程,实测有效

    很多使用pycharm2020.1.2版本的朋友,不知道如何激活破解,这篇文章主要介绍了pycharm2020.1.2永久破解激活教程,经小编实测有效,需要的朋友可以参考下
    2020-10-10
  • Python单元测试框架unittest简明使用实例

    Python单元测试框架unittest简明使用实例

    这篇文章主要介绍了Python单元测试框架unittest简明使用实例,本文讲解了基本测试步骤、和测试实例,需要的朋友可以参考下
    2015-04-04
  • python rsa和Crypto.PublicKey.RSA 模块详解

    python rsa和Crypto.PublicKey.RSA 模块详解

    这篇文章主要介绍了python rsa和Crypto.PublicKey.RSA 模块,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Numpy 改变数组维度的几种方法小结

    Numpy 改变数组维度的几种方法小结

    今天小编就为大家分享一篇Numpy 改变数组维度的几种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 解决python ThreadPoolExecutor 线程池中的异常捕获问题

    解决python ThreadPoolExecutor 线程池中的异常捕获问题

    这篇文章主要介绍了解决python ThreadPoolExecutor 线程池中的异常捕获问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python如何自定义邻接表图类

    Python如何自定义邻接表图类

    这篇文章主要介绍了Python如何自定义邻接表图类问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 对Python3 * 和 ** 运算符详解

    对Python3 * 和 ** 运算符详解

    今天小编就为大家分享一篇对Python3 * 和 ** 运算符详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Golang GBK转UTF-8的例子

    Golang GBK转UTF-8的例子

    今天小编就为大家分享一篇Golang GBK转UTF-8的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08

最新评论