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学习资料
Feb 08 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
django之常用命令详解
Jun 30 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
解决seaborn在pycharm中绘图不出图的问题
May 24 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
Apr 05 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
Django中提示消息messages的设置方式
Nov 15 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 Python
Python如何用re模块实现简易tokenizer
May 02 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
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
Python telnet登陆功能实现代码
2020/04/16 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
村党组织公开承诺书
2015/04/30 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
2019入党申请书格式
2019/06/25 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python