Python图像处理之简单画板实现方法示例
2018-08-30 10:51
1256 查看
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图像处理实现画板
- Python实现简单文本字符串处理的方法
- Python简单实现两个任意字符串乘积的方法示例
- python图像处理之反色实现方法
- java简单实现八叉树图像处理代码示例
- python图像处理之镜像实现方法
- Python有序字典简单实现方法示例
- python 简单图像处理(1) 反色
- python 简单图像处理(10) 空间域图像平滑
- python 简单图像处理(8) 直方图均衡化
- python 简单图像处理(12) 伪彩色增强
- python 简单图像处理(13) 二值图腐蚀和膨胀,开运算、闭运算
- ffmpeg 解码后图像倒立的简单处理方法
- 图像基本处理算法的简单实现(一) 推荐
- python 简单图像处理(15) 图像的傅立叶变换
- python 简单图像处理(11) 空间域图像锐化(边缘检测)
- 让客户端把ASP文件以XML的方式来处理最简单的实现方法.
- python 简单图像处理(6) 错切
- python 简单图像处理(3) 平移
- python 简单图像处理(14) 灰度图腐蚀和膨胀,开运算、闭运算