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 相关文章推荐
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
Apr 28 Python
python通过定义一个类实例作为ftp回调方法
May 04 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
在numpy矩阵中令小于0的元素改为0的实例
Jan 26 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
Python连接字符串过程详解
Jan 06 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
Django xadmin安装及使用详解
Oct 26 Python
Python进程间的通信之语法学习
Apr 11 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 str_pad 函数用法简介
2009/07/11 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
JavaScript中的History历史对象
2008/01/16 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
vue实现全选和反选功能
2017/08/31 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
layui字体图标 loading图标静止不旋转的解决方法
2019/09/23 Javascript
元组列表字典(莫烦python基础)
2019/04/03 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
高分子材料与工程专业个人求职信
2013/12/15 职场文书
初级会计求职信范文
2014/02/15 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
党校学习心得体会范文
2014/09/09 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
用python修改excel表某一列内容的操作方法
2021/06/11 Python
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle