30行Python代码实现高分辨率图像导航的方法
作者:不脱发的程序猿 发布时间:2021-03-23 04:11:37
标签:Python,高分辨率,图像导航
在项目开发的过程中,经常会遇到要查看图像细节的问题,这时候我们通常会,滚动滑轮将图像放大,或者使用电脑内置的放大器功能进行查看,如下图所示,是我使用Altium Designer软件的高清晰图像导航功能查看PCB细节的效果:
那么作为一位程序员,是否可以做到这点呢?
当然可以,Python在手,天下我有~
1、导入图像功能
导入图像功能是基于Windows命令窗口实现的,用户在命令窗口调用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、图像降采样功能
将导入的图像进行降采样,形成一个缩小的整体效果图,方便和超分辨率放大的图像进行对比观察,效果如下所示:
实现代码如下所示:
small = img
for _i in range(3):
#图像降采样
small = cv.pyrDown(small)
3、高分辨率导航功能
最后实现超分辨率图像导航功能,这里创建一个鼠标事件,超分辨率图像跟随着鼠标移动,实现导航效果,效果如下所示:
实现代码如下所示:
#鼠标响应事件
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()
来源:https://blog.csdn.net/m0_38106923/article/details/105527579


猜你喜欢
- 数据表/*Navicat SQLite Data TransferSource Server &n
- from urllib.request import urlopen  
- 用Python实现学生信息管理系统,供大家参考,具体内容如下系统功能有:1.录入,查找,删除,修改学生信息2.学生成绩排名3.显示全部学生信
- 自动化测试的脚本运行完成之后,可以生成test report,如果能将result自动的发到邮箱就不用每次打开阅读,而且随着脚本的不段运行,
- 相关介绍Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动
- 本文实例讲述了PHP引用的调用方法。分享给大家供大家参考,具体如下:示例1:function test($arr){} echo test(
- 项目进行到和服务器交互,通过post访问服务器端jsp,jsp访问服务器端mysql数据库,最终返回到客户端的中文出现乱码问题。在整个流程中
- Function Moneynm(n,m) &
- python下读取公私钥做加解密实例详解在RSA有一种应用模式是公钥加密,私钥解密(另一种是私钥签名,公钥验签)。下面是Python下的应用
- MySQL各版本,对于add Index的处理方式是不同的,主要有三种:(1)Copy Table方式这是InnoDB最早支持的创建索引的方
- 不知道有多少人是被这个头图骗进来的:)事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八
- 前言如果你对数据分析有一定的了解,那你一定听说过一些亲民好用的数据分析的工具,如Excel、Tableau、PowerBI等等等等,它们都是
- 1.概述python中的日志库logging使用起来有点像log4j,但配置通常比较复杂,构建日志服务器时也不是方便。标准库logging的
- 首先我们来看看原图:接着我们来看看效果图:通过分析我们不难发现以下特征:主要颜色为黑白灰边界线条较重相同或相近色趋于白色略有光源效果需要用到
- 假设现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作。比如说应用到我们之前的音乐高潮提取器:若当
- 电脑环境:windows7 64位 python3.7问题:在PyCharm中,使用setting下
- 如下所示:#先下载psutil库:pip install psutilimport psutilimport os,datetimedef
- 当然这点小问题是难不倒我们程序员的,“max+1啊”,有人会说这样的方式。是的,这种方式实现起来也比较简单。当然你也许还会说,最Sql的方式
- python设置环境变量有什么用?1、设置环境变量可以在cmd命令行中找到python命令;2、设置环境变量可以在安装exe的第三包的时候找
- 昨天在书友会上讨论信息分类和方法,有位朋友问:“大家现在讨论的还是几年前那套web2.0的东西,有没有一些新的东西可以分享?”我当时确实感觉