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

OpenCV学习之cv2.imshow()函数

OpenCV学习之cv2.imshow()函数

一、简介

cv2.imshow 是 OpenCV 库中用于显示图像的基本函数之一。在图像处理和计算机视觉的过程中,使用该函数可以快速预览处理后的图像,便于调试和结果展示。

二、基本语法

cv2.imshow('WindowName', Imgmat)

三、参数说明

  • WindowName (str): 窗口名称,用于唯一标识一个窗口。
  • Imgmat (numpy.ndarray): 要显示的图像,通常是一个 numpy 数组。
    • ⚠️⚠️⚠️❗❗❗一定要注意该处的图像数据不能是浮点数像素值,否则imshow函数将进行数据截断大于1的数都截断位1,导致图像显示错误。
    • 为什么要提这个?这是因为我们做图像处理经常会转换成浮点数进行计算

四、示例

示例 1: 显示一张图像
import cv2# 读取图像,读者需更改路径
image = cv2.imread('2015.jpg')# 显示图像
cv2.imshow('Image Window', image)# 等待用户按键(这里的 0 表示无限等待)
cv2.waitKey(0)# 销毁所有窗口
cv2.destroyAllWindows()
示例 2: 错误显示一张图像
import cv2
import numpy as np# 读取图像,读者需更改路径
image = cv2.imread('2015.jpg')# 显示图像,这里会显示很奇怪,因为发生了数据截断,在参数说明部分已经做了说明
cv2.imshow('Image Window', image.astype(np.float64))# 等待用户按键(这里的 0 表示无限等待)
cv2.waitKey(0)# 销毁所有窗口
cv2.destroyAllWindows()
示例 3: 实时显示视频帧
import cv2# 打开摄像头
cap = cv2.VideoCapture(0)while True:# 逐帧捕获ret, frame = cap.read()# 显示帧cv2.imshow('Video Frame', frame)# 按下 'q' 键退出循环if cv2.waitKey(1) & 0xFF == ord('q'):break# 释放摄像头
cap.release()# 销毁所有窗口
cv2.destroyAllWindows()

五、非常实用的显示技巧

示例 1: 横向同时显示多张图片(横向拼接)
cv2.imshow('Image Window', np.hstack((image,image)))

在这里插入图片描述

示例 2: 纵向同时显示多张图片(纵向拼接)
cv2.imshow('Image Window', np.vstack((image,image)))

在这里插入图片描述

示例 3: 以矩阵形式同时显示多张图片(双向拼接)
cv2.imshow('Image Window', np.vstack((np.hstack((image,image)),np.hstack((image,image)))))

在这里插入图片描述

http://www.lryc.cn/news/387260.html

相关文章:

  • Oracle、MySQL、PostGreSQL、SQL Server-空值
  • python pip详解1
  • Linux常用命令大全(超详细!!!)
  • TDD测试驱动开发
  • huggingface镜像站
  • Java中如何实现数据库连接池优化?
  • 002 SpringMVC入门项目搭建
  • 为什么要使用多线程(并发编程)
  • Unity编辑器工具---版本控制与自动化打包工具
  • amis-editor 注册自定义组件
  • (上位机APP开发)调用华为云命令API接口给设备下发命令
  • 排序算法系列一:选择排序、插入排序 与 希尔排序
  • 【快速排序】| 详解快速排序 力扣912
  • 游戏推荐: 植物大战僵尸杂交版
  • 微调和rag的区别?
  • CVPR讲座总结(二)-探索图像生成基础模型的最新进展探索多模态代理的最新进展:从视频理解到可操作代理
  • 为什么要禁用透明大页面
  • Element 页面滚动表头置顶
  • 对于CDA一级考试该咋准备??!
  • 如何使用PHP和Selenium快速构建自己的网络爬虫系统
  • intellij idea安装R包ggplot2报错问题求解
  • 【C++】初识C++(一)
  • 【智能算法】目标检测算法
  • python 中 json.load json.loadd json.dump json.dumps 详解
  • 【UE 网络】专用服务器和多个客户端加入游戏会话的过程,以及GameMode、PlayerController、Pawn的创建流程
  • 磁盘分区工具(fdisk 和 parted)区别及操作笔记
  • VisualStudio2019受支持的.NET Core
  • Java——IO流(二)-(1/7):字符流-FileReader、FileWriter、字符输出流的注意事项(构造器及常用方法、小结)
  • Spring循环依赖问题——从源码画流程图
  • Android SurfaceFlinger——动画播放准备(十五)