当前位置: 首页 > article >正文

OpenCV图像显示imshow()函数——详解

OpenCV图像显示imshow()函数——详解

本文目录:

零、时光宝盒

一、OpenCV 图像显示使用imshow()函数语法

二、imshow()显示图片时发生图片显示不全的解决方法

解决办法(1)

解决办法(2)

总结

三、imshow()图像显示模式


零、时光宝盒

2ab463de26a541818271efa176656ae6.png
逆境清醒:https://blog.csdn.net/weixin_69553582   

  我不知道你们近况具体怎样,你们在哪里,但在这个环境下,看看我自己遭遇就猜到你们并不会过得太容易。

  我没办法帮你们,但请你们一定要坚持下去,有些不好的事情不要放在心上,看清楚事情的真相,不要让自己沉浸在坏情绪里,为了你们自己,为了你们和你们喜欢的人的明天。

  心理学上有个词,叫“野马效应”,有空看一下,我有篇文章里也提到一二,点击这:CSS3 动画相关属性实例大全(一)(@keyframes ,background属性,border 属性)-CSDN博客

     逆境清醒
2025.1.23

此文地址:https://blog.csdn.net/weixin_69553582/article/details/145314384

7f8eafc867aa425cab7d368ee0eb4dd8.gif

一、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将显示一个保存图像的对话框。

  1. OpenCV简介、OpenCV安装

  2. OpenCV imread函数读取图像__实例详解

  3. OpenCV图像显示imshow()函数——详解


 推荐阅读:

逆境清醒文章总目录表

27d5b50d93a089da35ee1a28905f9719.jpeg​​​​​

c64d8b4d0b6842ebe1196c0b1e3fba51.jpeg​​​​​

a136a43cd0015088d4ce37b1bb653533.jpeg​​​​​

给照片换底色(python+opencv)猫十二分类基于大模型的虚拟数字人__虚拟主播实例

0f92b28e915ca3cc26cfaaf47c5fc62d.jpeg

5d2b51be3e7e932be95355088e17d524.jpeg

3cf3fe3c1a186bfcbf12d4755b8950ae.jpeg

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

849b7a72434213407c862c8f8e071a22.png

9412a31659ba6db83d806c3f354dd1c0.png

fb29a865f75af8352dca5e3d56a09004.png

语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

逆境清醒

637c349e8206c0651d1f2751ba128912.png

ce6afe00fdaa41f8aff1cf830e23f1ac.png7364ac22aa4f40899b6d7597ad7d91b6.png

 matplotlib 自带绘图样式效果展示速查(28种,全)

PyCharm 社区版(2024.2.3)安装、配置、创建项目

pycharm汉化插件无法使用也无法卸载的解决方法

ec9793633e16de7b52fbf0b74ecfa2f3.png

1b1579176220a88ae2a53758f91a41d6.pngc97237f650c44d0da960e88c37fc921d.png
Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

开源数据科学平台Anaconda简介

最新版本Anaconda 2024.06-1安装设置

6e420cca6a1313b93948785f689f5723.png

1da3f182e081ad8f3cfcf53013909b8b.png

ca733c1a99c6457a762d0e503855ce79.png

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

f92dfeb72ec683025a63db2fe8a26492.png

1b2a866ebb074a1e5859dad42c435d5c.jpeg

8207b63755bf37b10807a046080f14df.png

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

b97d56fe7e3ce6234cb182ad86fef4ed.jpeg

6871f222e7db3f8ce83336ad50311c3a.png

b89ed1147e8a76e6c64b812d65e8f2ef.png

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

7090a17485b11d9da69e37e5756c6910.png

50313523c8c19f29270fb1110fe66ae9.png

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

4c77c7a60782637db9e27b3deec7abee.png

c397ed3a22c7885194eb92b5b3883322.png

a18fbd27f15eaa98f0bb5a4fed8cbd8b.png

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

36e2af3bf474c59b9c430b223417793b.png

542dbf91cfafa23e1ccdee94a7b22397.png

175f4dd5b5bb4e46915f57c9f853f001.jpeg

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

【中秋月饼系列】2024年立体月饼新鲜出炉----python画月饼(1)附完整代码

逆境清醒

68b0f4704053ab870c16bb4e37897d63.png

25ff4b8d741f0942c50dd96b7e866386.jpeg

59bb0955631256520f0edd17f8304669.jpeg

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2025年1月多家权威机构____编程语言排行榜__薪酬状况

7dda70990181a20a430cc7b13dc9d8aa.png​​

a1fea2de0187913a4cdb18473c512c55.png

96e1df3760ce3017026da2d1de069869.png

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

逆境清醒

cc75265b98b9475cb68deece4f3def19.png

用代码画万圣节南瓜(python,MATLAB,html css)

8fe676a8d0404267af522df861a0a904.gif

CSS3 动画相关属性实例大全

49148faa34d949e999b8f0976a1fa8cb.png

CSS @规则(At-rules)系列详解

fa753f11d26d967646a85b78b53dc703.png

71e3b727d1634951aeed4e66cc536fe1.jpega1632ea3af784e47a1673144e360272e.gif
vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

圣诞节系列代码专辑(目录)

Markdown 语法详解大全(超级版)

4290a52c20eee861ee159e17659342f5.png

b126b976989a1e4f1ae40867407e8f4d.png

15f065b7e46b238db1e7382f70fd7076.png

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

f3a00b9bf85e8d36c21d8e9785f43a53.png

1f143789d9652fd35c1fabf11b6f149c.png

2c8047a9f87aa22a8abe57ad0081b1d9.png

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

逆境清醒

a01e7c6663c27936b3c174265db14012.png

6d12eed561af36157625a07b771f9b0b.png

af9dcebc4110cf5b9a012a3ef7d268fe.png

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

逆境清醒

987cd5bf2ecef39fd782b5d64f0c3cbf.png7bd749109565caaad3799224fad815a4.jpeg

信息系统项目管理师试题

云计算


http://www.kler.cn/a/516182.html

相关文章:

  • doris:Broker Load
  • .NET 9 微软官方推荐使用 Scalar 替代传统的 Swagger
  • Python的泛型(Generic)与协变(Covariant)
  • 从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)
  • c++学习第七天
  • STM32 FreeROTS Tickless低功耗模式
  • Sharding-JDBC 5.4.1+SpringBoot3.4.1+MySQL8.4.1 使用案例
  • 云计算中的微服务架构是什么
  • autogen 中的 Teams 示例
  • 【数据结构进阶】红黑树超详解 + 实现(附源码)
  • 【探索 Kali Linux】渗透测试与网络安全的终极操作系统
  • 使用github提交Pull Request的完整流程
  • 差分进化算法 (Differential Evolution) 算法详解及案例分析
  • HTML5 新的 Input 类型详解
  • 计算机图形学:实验二 三维模型读取与控制
  • C++ 入门速通1【黑马】
  • 52.this.DataContext = new UserViewModel(); C#例子 WPF例子
  • Python数据类型与操作
  • matlab计算功率谱的四种方法
  • 【Linux】Linux的基本指令(1),包括ls、pwd、cd、touch、mkdir、rm、man、cp、mv、cat
  • Vue2:使用sortablejs实现el-table中行拖拽调整顺序
  • 进程优先级
  • C语言-内存管理
  • 一个面向领域的直播平台开源!
  • Codeforces Round 1000 (Div. 2)(A-D)
  • 安宝特方案 | 智能培训:安宝特AR如何提升企业技能培训的效率与互动性