python3.6+opencv3.4实现鼠标交互查看图片像素

yipeiwu_com6年前Python基础

在利用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设计】。

相关文章

Linux下安装python3.6和第三方库的教程详解

Linux下安装Python3.6和第三方库 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如y...

Python3中_(下划线)和__(双下划线)的用途和区别

在看一些Python开源代码时,经常会看到以下划线或者双下划线开头的方法或者属性,到底它们有什么作用,又有什么样的区别呢?今天我们来总结一下(注:下文中的代码在Python3下测试通过)...

Python基于tkinter模块实现的改名小工具示例

本文实例讲述了Python基于tkinter模块实现的改名小工具。分享给大家供大家参考,具体如下: #!/usr/bin/env python #coding=utf-8 # #...

python中实现将多个print输出合成一个数组

比如有下面一段代码: for i in range(10): print ("%s" % (f_list[i].name)) 该代码段的执行,会生成如下的10行“name”属性...

Pyqt5 基本界面组件之inputDialog的使用

Pyqt5 基本界面组件之inputDialog的使用

QInputDialog类提供了一种简单方面的对话框来获得用户的单个输入信息,可以是一个字符串,一个Int类型数据,一个double类型数据或是一个下拉列表框的条目。 对应的Dialog...