【OpenCV】003、图像显示imshow()函数——详解
本文目录:
零、时光宝盒
逆境清醒:https://blog.csdn.net/weixin_69553582
我不知道你们近况具体怎样,你们在哪里,但在这个环境下,没有任何证据的风平浪静下的暗涌,猜到你们并不会过得太容易。
每个人遇到的情况不一样。
但,有些不好的事情不要放在心上。例如,看清楚事情的真相,不要浮于表面去责怪某些人,因为他们可能不知现在正发生什么,他们有可能被人当枪使伤害你们……,
例如,你正在经历一些折磨,逃无可逃,不知怎么办,看不到前途和希望……
我没办法帮你们,如果你们能知道我的真实状况,就知道我也同样面对很多问题,例如家里人被异常,任何事情都能指责是我不对,我也经常无助到几近崩溃,但我依然当他们是家里人一样好,是真的好,因为我知道他们不知道发生了什么,也理解不了超高科技的一些技术,所以,把那些不属于自己的想法当成自己的想法,并以此延伸,所以一但发生……总会把矛头指向我。当然,这里面肯定也有我的责任,例如我情商不够高,一直以来不会讨好人,说话没有顺着别人的话,太想提醒家里人不要……
如果能有无条件深爱着你们的人在你们身边,关爱体谅你们,任何困境都会好过很多,这就是我一直希望你们能早日找到真心爱你们的人的原因。
我没有福气等到我一直在等的人出现来找我,我没有,所以我遇到的各种问题不会比你们少,但我还在坚持着,因为我知道很多家庭同样面对这些问题(虽然这种情况超出绝大部分的认知,但确实是真实发生中的事情,科技发展远超我们所知),所以,请你们一定也要坚持下去。看看身边,很多人不知道发生了什么,但他们一样经历着各种磨难却努力生存着。
总之,不要让自己沉浸在坏情绪里,为了你们自己,为了你们和你们喜欢的人的明天。
心理学上有个词,叫“野马效应”,有空看一下,我有篇文章里也提到一二,点击这:CSS3 动画相关属性实例大全(一)(@keyframes ,background属性,border 属性)-CSDN博客
互勉!!!
逆境清醒
2025.1.23,1.27
20250315被csdn要求删除部分内容
此文地址:https://blog.csdn.net/weixin_69553582/article/details/145314384
一、OpenCV 图像显示使用imshow()函数语法
imshow()函数在指定窗口中显示图像。
Python:cv.imshow( winname, mat ) -> None
在指定窗口中显示图像。
cv2.imshow( winname, mat )
参数:
- winname:窗口的名称。
- mat:要显示的图像。
二、imshow()显示图片时发生图片显示不全的解决方法
imshow函数在指定窗口中显示图像。
如果窗口是使用cv::window_AUTOSIZE标志创建的,则图像将以其原始大小显示,但仍受屏幕分辨率的限制。
否则,将缩放图像以适应窗口。该函数可以根据图像的深度缩放图像:
一般情况下,OpenCV cv2.imshow会自动调整显示窗口的大小,将图片按其原始大小显示出来。但当图片超过屏幕分辨率时,例如当调用显示的图片的尺寸过大时,会发生图片部分显示问题。
例如,下面就是直接调用imshow()显示图片时发生图片显示不全的例子
代码如下:
import cv2 as cv
import sys
img = cv.imread("images/jpg1_dd.png")
if img is None:
sys.exit("不能读取图片.")
cv.imshow("逆境清醒opencv教程系列,原图", img)
key = cv.waitKey(0)
解决办法(1):
在使用cv2.imshow()之前调用cv2.namedWindow("", cv2.WINDOW_NORMAL)
效果图:
相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1_dd.png")
if img is None:
sys.exit("不能读取图片.")
cv.namedWindow("逆境清醒opencv教程系列,原图", cv.WINDOW_NORMAL)
cv.imshow("逆境清醒opencv教程系列,原图", img)
key = cv.waitKey(0)
我们还可以再选择使用缩放图像,来使图像按特定大小显示:
效果图:
相关代码:
#图片显示不全解决办法
import cv2 as cv
import sys
img = cv.imread("images/jpg1_dd.png")
if img is None:
sys.exit("不能读取图片.")
cv.namedWindow("逆境清醒opencv教程系列,原图", cv.WINDOW_NORMAL)
cv.resizeWindow("逆境清醒opencv教程系列,原图", 800, 600)
cv.imshow("逆境清醒opencv教程系列,原图", img)
key = cv.waitKey(0)
另外一种方法,
解决办法(2):
效果图:
相关代码:
import cv2 as cv
import sys
import pyautogui
img = cv.imread("images/jpg1_dd.png")
if img is None:
sys.exit("不能读取图片.")
screen_width, screen_height = pyautogui.size()
scale = screen_height / img.shape[0]-0.2
img = cv.resize(img, None, fx=scale, fy=scale)
cv.imshow("逆境清醒opencv教程系列", img )
key = cv.waitKey(0)
总结:
opencv在使用cv2.imshow()显示图片时,是在指定窗口中显示图片,若在调用cv2.imshow()函数之前,没有调用创建窗口的函数,则默认使用cv2.WINDOW_AUTOSIZE标记创建默认窗口,如果需要显示大于屏幕分辨率的图像,则需要在使用cv2.imshow()之前调用cv2.namedWindow("", cv2.WINDOW_NORMAL)
- 如果窗口是使用OpenGL支持创建的,cv::imshow还支持ogl::Buffer、ogl:∶Texture2D和cuda::GpuMat作为输入。
- 如果此函数之前没有创建窗口,则假定创建了一个cv::window_AUTOSIZE的窗口。
- 如果需要显示大于屏幕分辨率的图像,则需要在imshow之前调用namedWindow(“”,WINDOW_NORMAL)。
三、imshow()图像显示模式
-
如果图像是8位
如果图像是8位无符号的,则按原样显示。
示例效果图如下:
相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1_8bit.png")
if img is None:
sys.exit("不能读取图片.")
cv.imshow("逆境清醒opencv教程系列,8bit图", img)
key = cv.waitKey(0)
-
如果图像是16位
如果图像是16位无符号的,则像素除以256。也就是说,值范围[0,255*256]被映射到[0,255]。
示例效果图如下:
相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1_16bit.png")
if img is None:
sys.exit("不能读取图片.")
cv.imshow("逆境清醒opencv教程系列,16bit图", img)
key = cv.waitKey(0)
-
如果图像是32位或64位
如果图像是32位或64位浮点,则像素值将乘以255。也就是说,值范围[0,1]被映射到[0,255]。
示例效果图如下:
相关代码:
import cv2 as cv
import sys
img = cv.imread("images/jpg1_32bit.png")
if img is None:
sys.exit("不能读取图片.")
cv.imshow("逆境清醒opencv教程系列,32bit图", img)
key = cv.waitKey(0)
总结:
如果图像是8位符号的,则像素偏移128。也就是说,值范围[-128,127]被映射到[0,255]。
如果图像是16位签名的,则像素被除以256并被偏置128。也就是说,值范围[-3276832767]被映射到[0,255]。
由于所需转换的模糊性,不再处理32位整数图像。使用特定于图像上下文的自定义预处理转换为8位无符号矩阵。
注:
imshow()函数之后应调用cv::waitKey或cv::pollKey,以执行GUI内务管理任务,
这些任务对于实际显示给定图像并使窗口响应鼠标和键盘事件是必要的。
否则,它将不会显示图像,窗口可能会锁定。
例如,
waitKey(0)将无限显示窗口,直到任何按键(它适用于图像显示)。
waitKey(25)将显示一帧,并等待大约25毫秒的按键时间(适用于逐帧显示视频)。
要删除窗口,请使用cv::destroyWindow。
[仅限Windows后端]按Ctrl+C将图像复制到剪贴板。按Ctrl+S将显示一个保存图像的对话框。
推荐阅读:
|
|
|
给照片换底色(python+opencv) | 猫十二分类 | 基于大模型的虚拟数字人__虚拟主播实例 |
|
|
|
计算机视觉__基本图像操作(显示、读取、保存) | 直方图(颜色直方图、灰度直方图) | 直方图均衡化(调节图像亮度、对比度) |
|
|
|
|
逆境清醒
逆境清醒
|
|
|
2025年1月多家权威机构____编程语言排行榜__薪酬状况 | ||
|
|
|
【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向) | ||
逆境清醒
逆境清醒
|
|
|
逆境清醒
![]() | ![]() | |
|
| |