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探索之修改Python搜索路径
Oct 25 Python
Python实现采用进度条实时显示处理进度的方法
Dec 19 Python
python机器学习之决策树分类详解
Dec 20 Python
Python格式化输出%s和%d
May 07 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
Python中的self用法详解
Aug 06 Python
面向对象学习之pygame坦克大战
Sep 11 Python
决策树剪枝算法的python实现方法详解
Sep 18 Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
Feb 24 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
python录音并调用百度语音识别接口的示例
Dec 01 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
用PHP实现将GB编码转换为UTF8
2006/11/25 PHP
php 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
php stripslashes和addslashes的区别
2014/02/03 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
PHP生成树的方法
2015/07/28 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
url参数中有+、空格、=、%、&、#等特殊符号的问题解决
2013/05/15 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
js脚本编写简单刷票投票系统
2017/06/27 Javascript
JS实现吸顶特效
2020/01/08 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
python 录制系统声音的示例
2020/12/21 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
正规的求职信范文分享
2013/12/11 职场文书
管理专员自荐信
2014/01/26 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
暑假打工感想
2015/08/07 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP