首页 > 编程语言 >Python武器库 - 科研中常用的python图像操作 - 图像显示

Python武器库 - 科研中常用的python图像操作 - 图像显示

时间:2024-06-19 18:35:47浏览次数:14  
标签:lingdu 窗口 show Python imshow cv2 python 图像 img1

应用场景:在科研中,使用python(opencv)对图像进行操作后,
通常需要实时查看操作结果并实施调整,
而每次都在文件夹中打开查看是很麻烦的,
这就需要我们能够直接通过代码对图像进行可视化展示。

这里主要用到cv2中的**imshow(), waitKey() 和 destroyWindow()/destroyAllWindows() **函数,

  1. cv2.imshow(window_name, image)
    用于在窗口中显示图像。窗口自动适应图像大小。
    参数1 window_name:表示要显示图像的窗口名称(字符串)
    参数2 image:要显示的图像(由cv2.imread()读入的图像,类型即np.ndarray)

  2. cv2.waitkey()
    允许用户在给定时间(毫秒)内或按下任意键之前显示窗口。
    参数:以等待时间(毫秒为单位)作为参数,到达给定等待时间后关闭窗口。
    如果在参数中传递 0,那么将无限等待 直到按下任意键。

  3. cv2.destroyWindow()/destroyAllWindows()
    (1)cv2.destroyWindow(window_name)
    用于关闭特定窗口
    参数 window_name:要销毁窗口的名称(字符串, 对应imshow函数中传入的窗口名称)

(2)cv2.destroyAllWindows()
允许用户在退出脚本后随时销毁或关闭所有窗口。
如果同时打开多个窗口且想要关闭,可以使用此函数。
该函数不接受任何参数,也不返回任何内容

示例代码一:

import cv2

img1 = cv2.imread('example_img/img1.png')
img2 = cv2.imread('example_img/img2.png')

cv2.imshow('lingdu show image1', img1)
cv2.imshow('lingdu show image2', img2)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行效果:

示例代码二:

import cv2

img1 = cv2.imread('example_img/img1.png')
img2 = cv2.imread('example_img/img2.png')

cv2.imshow('lingdu show image1', img1)
cv2.imshow('lingdu show image2', img2)

cv2.waitKey(0)
cv2.destroyWindow('lingdu show image1')

运行效果:


在第一张图中,展示了代码运行后,窗口展示了img1和img2两张图片;
第二张图中,在按下任意键后,'lingdu show image1'窗口被销毁,只剩下'lingdu show image2'窗口

Bug补充:
在实际使用中,经常会碰到
调用了cv2.destroyAllWindows()之后窗口卡死不动、无法关闭的情况
解决办法:
在cv2.destroyAllWindows()后,
再调用一次cv2.waitKey(1),重新显示一帧画面后即可自动退出窗口。
例如:

import cv2

img1 = cv2.imread('example_img/img1.png')

cv2.imshow('lingdu show image1', img1)

cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)

标签:lingdu,窗口,show,Python,imshow,cv2,python,图像,img1
From: https://www.cnblogs.com/lingdu98/p/18256684

相关文章

  • Python 遍历文件每一行判断是否只有一个换行符详解
    前言在文件处理过程中,判断文件每一行是否只有一个换行符是一个常见需求。作为测试工程师,我们经常需要对文件的格式进行验证,确保数据的完整性和规范性。本文将详细介绍如何使用Python遍历文件的每一行,并判断每一行是否只有一个换行符。需求分析我们需要编写一个Python程序,......
  • Python 抽奖程序限定次数详解
    前言在开发抽奖程序时,限定用户的抽奖次数是一个常见需求。Python提供了灵活的工具和数据结构,可以轻松实现这个功能。本文将详细介绍如何编写一个限定抽奖次数的Python程序,包括设置抽奖次数限制、记录用户抽奖次数以及实现抽奖逻辑。需求分析我们需要一个抽奖程序,该程序可以......
  • 24年新版!这份Excel+Python飞速搞定数据分析手册,简直可以让Excel飞起来
     前⾔微软在UserVoice上运营着⼀个反馈论坛,每个⼈都可以在这⾥提交新点⼦供他⼈投票。票数最⾼的功能请求是“将Python作为Excel的⼀门脚本语⾔”,其得票数差不多是第⼆名的两倍。尽管⾃2015年这个点⼦发布以来并没有什么实质性进展,但在2020年年末,Python之⽗Guidov......
  • python学习3
    所花时间(包括上课): 2h代码量(行): 150左右搏客量(篇): 1了解到的知识点:python备注(其他): 破解百度翻译importrequestsimportjsonif__name__=='__main__':#UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器header......
  • Python最常见的语句、函数,想学好Python必须要懂得!
    1.函数的概念概念写了一段代码实现了某个小功能;然后把这些代码集中到一块,起一个名字,下一次就可以根据这个名字再次使用这个代码,这就是函数。作用方便代码的重复使用。分解任务,简化程序逻辑使代码更加模块化函数分类内建函数三方函数自定义函数2.函数的基本使用简单定......
  • 【Python背记手册】强烈建议!所有Python基础差的同学,死磕这本64页的背记手册!!
    写在前面在数字化飞速发展的今天,掌握一门编程语言成为了许多人的追求。而Python,以其简洁易读、功能强大的特点,成为了编程初学者和资深开发者都青睐的首选。然而,面对众多的学习资源,如何高效、系统地学习Python,成为了许多人面临的难题。今天,我要向大家推荐一本神奇的书籍——《P......
  • 深入理解Python类中的各种方法,非常实用!
    本文将详细介绍Python类中的各种方法,包括实例方法、类方法、静态方法、特殊方法等,并通过示例展示它们的用法和区别。1.实例方法(InstanceMethods)实例方法是最常见的方法,其第一个参数总是self,指向当前实例。实例方法用于操作实例数据和属性。python复制代码classMy......
  • Python 3 list sort All In One
    Python3listsortAllInOnePythonsortfunctionListsortlist.sort(key=None,reverse=False)sort()函数用于对原列表进行排序,如果指定参数,则使用指定的比较函数进行比较。key:主要是用来指定进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,......
  • 【Python】类和对象高级特性
    目录前言类变量与实例变量类方法静态方法私有属性和方法多重继承元类描述符总结前言在前一篇文章中,我们讨论了Python类和对象的基本概念。本文将深入探讨一些高级特性,这些特性可以帮助你更有效地使用Python进行面向对象编程。类变量与实例变量类变量是属于......
  • python实现英语翻译
     要在窗口中实现中文到英文的翻译,你可以使用Python的GUI库,例如tkinter,以创建一个简单的用户界面。以下是一个使用tkinter和GoogleTranslateAPI的例子:首先,确保你已经安装了googletrans库,你可以使用以下命令进行安装:pipinstallgoogletrans==4.0.0-rc1然后,你可以使用以......