30行Python代码实现高分辨率图像导航的方法


Posted in Python onMay 22, 2020

在项目开发的过程中,经常会遇到要查看图像细节的问题,这时候我们通常会,滚动滑轮将图像放大,或者使用电脑内置的放大器功能进行查看,如下图所示,是我使用Altium Designer软件的高清晰图像导航功能查看PCB细节的效果:

30行Python代码实现高分辨率图像导航的方法

那么作为一位程序员,是否可以做到这点呢? 

当然可以,Python在手,天下我有~

1、导入图像功能

导入图像功能是基于Windows命令窗口实现的,用户在命令窗口调用Python文件即可导入图像信息,输入指令及效果如下所示:

30行Python代码实现高分辨率图像导航的方法

实现代码如下所示:

if len(sys.argv) > 1:
  #根据控制台输入的图像,进行导入
  fn = cv.samples.findFile(sys.argv[1])
  print('loading %s ...' % fn)
  img = cv.imread(fn)
  if img is None:
    print('Failed to load fn:', fn)
    sys.exit(1)

2、图像降采样功能

将导入的图像进行降采样,形成一个缩小的整体效果图,方便和超分辨率放大的图像进行对比观察,效果如下所示:

30行Python代码实现高分辨率图像导航的方法

 实现代码如下所示:

small = img
for _i in range(3):
  #图像降采样
  small = cv.pyrDown(small)

3、高分辨率导航功能

最后实现超分辨率图像导航功能,这里创建一个鼠标事件,超分辨率图像跟随着鼠标移动,实现导航效果,效果如下所示:

30行Python代码实现高分辨率图像导航的方法

实现代码如下所示:

#鼠标响应事件
def onmouse(event, x, y, flags, param):
  h, _w = img.shape[:2]
  h1, _w1 = small.shape[:2]
  x, y = 1.0*x*h/h1, 1.0*y*h/h1
  zoom = cv.getRectSubPix(img, (800, 600), (x+0.5, y+0.5))
  cv.imshow('zoom', zoom)

4、图像显示功能

最后将图像显示出来就可以了,实现代码如下所示:

cv.imshow('preview', small)
cv.setMouseCallback('preview', onmouse)
cv.waitKey()

到此这篇关于30行Python代码实现高分辨率图像导航的方法的文章就介绍到这了,更多相关Python 高分辨率图像导航内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用chardet判断字符编码
May 09 Python
python实现class对象转换成json/字典的方法
Mar 11 Python
怎样使用Python脚本日志功能
Aug 14 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
对python requests发送json格式数据的实例详解
Dec 19 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
python 链接sqlserver 写接口实例
Mar 11 Python
pandas dataframe 中的explode函数用法详解
May 18 Python
python要安装在哪个盘
Jun 15 Python
python中复数的共轭复数知识点总结
Dec 06 Python
Python如何把不同类型数据的json序列化
Apr 30 Python
Python中文分词库jieba(结巴分词)详细使用介绍
Apr 07 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 #Python
Python pandas如何向excel添加数据
May 22 #Python
python3.8.1+selenium实现登录滑块验证功能
May 22 #Python
在TensorFlow中实现矩阵维度扩展
May 22 #Python
Python多个装饰器的调用顺序实例解析
May 22 #Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 #Python
Tensorflow tf.tile()的用法实例分析
May 22 #Python
You might like
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
PHP脚本的10个技巧(4)
2006/10/09 PHP
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
Javascript的&&和||的另类用法
2014/07/23 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
详谈js模块化规范
2017/07/07 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
基于jQuery实现定位导航位置效果
2017/11/15 jQuery
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
对python的输出和输出格式详解
2018/12/08 Python
Python实战之制作天气查询软件
2019/05/14 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
中国跨境电商:Tomtop
2017/03/16 全球购物
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
激励口号大全
2014/06/17 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
校园广播站开场白
2015/06/01 职场文书
返乡农民工证明
2015/06/24 职场文书
班主任寄语2016
2015/12/04 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技