python3.6+opencv3.4实现鼠标交互查看图片像素
在利用opencv进行图片处理时,经常需要查看图片关心区域或位置的像素数值,苦于没有应手的小软件,我用python3.6+opencv3.4简单编制一个小工具,供大家使用。
流程
1.建立标准的鼠标交互函数,当鼠标在图像上移动时,即时显示鼠标位置的像素数值(opencv像素为BGR格式)。
2.建立图像窗口,绑定鼠标回调函数。
3.按下‘q'键,退出。
4.仅需15行代码,就是这么简单。
代码
# -*- coding: utf-8 -*- import cv2 img= cv2.imread('006.png') #定义图片位置 img= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #转化为灰度图 def onmouse(event, x, y, flags, param): #标准鼠标交互函数 if event==cv2.EVENT_MOUSEMOVE: #当鼠标移动时 print(img[y,x]) #显示鼠标所在像素的数值,注意像素表示方法和坐标位置的不同 def main(): cv2.namedWindow("img") #构建窗口 cv2.setMouseCallback("img", onmouse) #回调绑定窗口 while True: #无限循环 cv2.imshow("img",img) #显示图像 if cv2.waitKey() == ord('q'):break #按下‘q'键,退出 cv2.destroyAllWindows() #关闭窗口 if __name__ == '__main__': #运行 main()
彩色图运行效果
灰度图运行效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Python+OpenCV图片局部区域像素值处理改进版详解
上个版本的Python OpenCV图片局部区域像素值处理,虽然实现了我需要的功能,但还是走了很多弯路,我意识到图片本就是数组形式,对于8位灰度图,通道数为1,它就是个二位数组,这样就没有必要再设置ROI区域,复制出来这块区域再循环提取像素存入数组进行处理了,可以直接将图片存入数组,再利用numpy进行切分相应的数组操作就可以了,这样一想就简单很多了,这篇我会贴出修改后的代码,直接省去了大段的代码啊. ps:这次我重新装的opencv3.2.0版本,代码里面直接用cv2了 # 查看opencv版
-
Python用61行代码实现图片像素化的示例代码
起因 看到网上的像素图片,感觉蛮有趣的,就打算用python一些PIL类库写一个. 实现思路 把一张图片分成多个块,每个块的颜色都等于这个色块中颜色最多的颜色,如下图. 这个图取2×2的像素为块的大小,把快中颜色与每个颜色出现的数量存放到字典里,取最大的颜色,填充整个块. 具体实现 from PIL import Image def init(): # 设置每个像素区块的大小 block_size = 75 img = Image.open("a.jpg") # 获取图片的宽高 wid
-
Python OpenCV处理图像之图像像素点操作
本文实例为大家分享了Python OpenCV图像像素点操作的具体代码,供大家参考,具体内容如下 0x01. 像素 有两种直接操作图片像素点的方法: 第一种办法就是将一张图片看成一个多维的list,例如对于一张图片im,想要操作第四行第四列的像素点就直接 im[3,3] 就可以获取到这个点的RGB值. 第二种就是使用 OpenCV 提供的 Get1D. Get2D 等函数. 推荐使用第一种办法吧,毕竟简单. 0x02. 获取行和列像素 有一下四个函数: cv.GetCol(im, 0): 返回第
-
Python+OpenCV图片局部区域像素值处理详解
背景故事:我需要对一张图片做一些处理,是在图像像素级别上的数值处理,以此来反映图片中特定区域的图像特征,网上查了很多,大多关于opencv的应用教程帖子基本是停留在打开图片,提取像素重新写入图片啊之类的基本操作,我是要取图片中的特定区域再提取它的像素值,作为一个初学者开始接触opencv简直一脸懵,慢慢摸索着知道了opencv的一些函数是可以实现的像SetImageROI()函数设置ROI区域,即感兴趣区域,就很好用啊,总之最后是实现了自己想要的功能.现在看个程序确实是有点挫,也有好多多余的没必
-
用python处理图片实现图像中的像素访问
前面的一些例子中,我们都是利用Image.open()来打开一幅图像,然后直接对这个PIL对象进行操作.如果只是简单的操作还可以,但是如果操作稍微复杂一些,就比较吃力了.因此,通常我们加载完图片后,都是把图片转换成矩阵来进行更加复杂的操作. python中利用numpy库和scipy库来进行各种数据操作和科学计算.我们可以通过pip来直接安装这两个库 pip install numpy pip install scipy 以后,只要是在python中进行数字图像处理,我们都需要导入这些包: fr
-
Python3实现取图片中特定的像素替换指定的颜色示例
本文实例讲述了Python3实现取图片中特定的像素替换指定的颜色.分享给大家供大家参考,具体如下: 1.原始图片 2.修改脚本: # -*- coding:utf-8 -*- #! python3 from PIL import Image i = 1 j = 1 img = Image.open("e:/pic/222.jpg")#读取系统的内照片 print (img.size)#打印图片大小 print (img.getpixel((4,4))) width = img.size
-
python微信跳一跳系列之棋子定位像素遍历
前言 在前几篇博客中,分别就棋子的颜色识别.模板匹配等定位方式进行了介绍和实践,这一篇博客就来验证一下github中最热门的跳一跳外挂中采用的像素遍历的方法. 方法说明 像素遍历的实质依然是颜色识别. 在github中给出的方法中,采用像素遍历的方法是: 从高度的1/3处开始至高度的2/3处进行遍历: 首先间隔50像素进行搜索 当像素的颜色和每一行开始的像素颜色不同时,认为找到了最上面的棋盘位置,则返回上一个间隔处开始遍历(i-50): 对每一行的像素都进行遍历,当满足给定的颜色范围时,记录最下
-
python使用PIL模块获取图片像素点的方法
如下所示: from PIL import Image ########获取图片指定像素点的像素 def getPngPix(pngPath = "aa.png",pixelX = 1,pixelY = 1): img_src = Image.open(pngPath) img_src = img_src.convert('RGBA') str_strlist = img_src.load() data = str_strlist[pixelX,pixe
-
Python 处理图片像素点的实例
###在做爬虫的时候有时需要识别验证码,但是验证码一般都有干扰物,这时需要对验证码进行预处理,效果如下: from PIL import Image import itertools img = Image.open('C:/img.jpg').convert('L') #打开图片,convert图像类型有L,RGBA # 转化为黑白图 def blackWrite(img): blackXY = [] # 遍历像素点 for x in range(img.size[0]): for y in
-
python实现两张图片的像素融合
本文实例为大家分享了python实现两张图片像素融合的具体代码,供大家参考,具体内容如下 通过计算两张图片的颜色直方图特征,利用直方图对图片的颜色进行融合. import numpy as np import cv2 from PIL import Image,ExifTags def calcMeanAndVariance(img): row=img.shape[0] col=img.shape[1] #channel=img.shape[2] total=row*col print (row
随机推荐
- JS 密码强度校验的正则表达式(简单且好用)
- Access连接数据源(ODBC)配置(新手必知)
- 远程无法连接SQL2000及MySQL的原因和解决办法
- Linux 中PHP的安装教程
- 学习Java的Date、Calendar日期操作
- MySQL安全性指南 (1)(转)
- php图片加中文水印实现代码分享
- C#基于正则表达式实现获取网页中所有信息的网页抓取类实例
- Python中正则表达式详解
- go语言实现的memcache协议服务的方法
- JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql
- javascript实现获取字符串hash值
- 在JSP页面中获取当前日期时间的方法
- jQuery实现根据生日计算年龄 星座 生肖
- js获取网页可见区域、正文以及屏幕分辨率的高度
- 查看linux中某个端口(port)是否被占用的方法
- 中文Access2000速成教程--1.3 在“设计”视图中设计表
- 解析Java的JVM以及类与对象的概念
- java 设计模式(DAO)的实例详解
- 抢注行为频起风波 中文域名价值几何