【OpenCV】P2 程序加载显示图片

这篇具有很好参考价值的文章主要介绍了【OpenCV】P2 程序加载显示图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Opencv 中,如果想要加载展示一张图片,有以下几个步骤:

  1. 读取图像:根据指定路径读取图像,将图像转化为数字矩阵形式;
  2. 创建窗口:创建图像显示窗口,命名窗口名称;
  3. 显示图像:通过窗口以数字矩阵形式展示图像;
  4. 释放内存:展示完成,释放内存。

四个步骤

读取图像

OpenCV 提供函数 cv2.imread() 读取图像,该函数的一般形式如下:

image_arr = cv2.imread(filename, flags)
  • filename:要读取的图像文件路径;
  • flags:可选参数,用于指定如何读取图像:
    • cv2.IMREAD_COLOR:默认值,读取 RGB 三通道图像;
    • cv2.IMREAD_GRAYSCALE:读取图像,并调整为单通道灰度图像;
    • cv2.IMREAD_UNCHANGED:读取图像,保持原始所有通道信息;
    • 等等

读取图像后,将以数字矩阵的形式保存在内存中 image_arr 变量中。这个数字矩阵包含了图像的像素信息,可以进行各种图像处理和分析操作,比如后续博文会介绍到图像转换、滤波、边缘检测等。

e . g . c o d e . e.g.code. e.g.code. 读取一张图像以及其灰度图矩阵信息:

import cv2
image_arr_1 = cv2.imread("universe.jpg")
image_arr_2 = cv2.imread("universe.jpg", cv2.IMREAD_GRAYSCALE)
print("原图矩阵为:", image_arr_1)
print("灰度图矩阵为:", image_arr_2)

创建窗口

OpenCV 提供函数 cv2.namedWindow() 来创建一个展示窗口并赋予名称,该函数的一般形式如下:

cv2.namedWindow('WindowName', WindowSize)
  • WindowName:指定窗口名称;
  • WindowSize:可选参数,指定窗口大小:
    • WINDOW_AUTOSIZE: 默认值,窗口大小自适应内容;
    • WINDOW_NORMAL: 窗口正常显示,用户可以调整窗口大小;
    • WINDOW_KEEPRATIO: 保持图像的宽高比;
    • 等等

创建窗口后,我们将在显示图像时使用该窗口进行展示;

e . g . c o d e e.g.code e.g.code

# 创建一个名为 "MyWindow" 的窗口,用户可以调整窗口大小
cv2.namedWindow('MyWindow', cv2.WINDOW_NORMAL)

显示图像

OpenCV 提供的 imshow() 函数用来显示图像。该函数接受两个参数,第一个参数为窗口名称,第二个参数为要显示的图像数字矩阵。

到此,理论上我们已经可以打开一个名为 Image Of Universe 的窗口并展示我们的图像 universe.jpg,但是我们还缺少两行代码;

import cv2

# 读取图像
image_arr = cv2.imread('universe.jpg', cv2.IMREAD_COLOR)
# 创建展示窗口
cv2.namedWindow("Image Of Universe", cv2.WINDOW_NORMAL)
# 展示图像
cv2.imshow('Image Of Universe', image_arr)
# 未完待续
# 缺少设定窗口展示时间
# 缺少释放内存资源代码

首先,缺少设定窗口展示时间。Opencv 规定,需要设定窗口展示的时间,否则将会一闪而过。设定函数为 waitKey,单位为毫秒;

cv2.waitKey(1000)	# 代表窗口展示时间为1s
cv2.waitKey(0)		# 窗口将一直展示

释放内存

最后,展示完成后,通过函数 destoryAllWindows() 释放内存;

cv2.destoryAllWindows()

完整代码

综上,完整代码如下:

import cv2

image_arr = cv2.imread('universe.jpg', cv2.IMREAD_COLOR)
cv2.namedWindow("Image Of Universe", cv2.WINDOW_NORMAL)
cv2.imshow('Image Of Universe', image_arr)

key = cv2.waitKey(0)
if key == ord('q'):
    print("退出展示窗口")
    cv2.destroyAllWindows()

定稿:2024/1/24
版本:第三版
如有任何问题,请留言或私信,感谢!文章来源地址https://www.toymoban.com/news/detail-823426.html

到了这里,关于【OpenCV】P2 程序加载显示图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV 01(图像加载与显示)

    现在说的机器视觉(Machine Vision)一般指计算机视觉(Computer Vision), 简单来说就是研究如何使机器看懂东西。就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。 人脸识别

    2024年02月09日
    浏览(30)
  • QImage加载opencv读取的图片出错

    今天写opencv的时候, 突然发现一件很奇怪的事情, 用摄像头读取的图片, 用QImage加载的时候传入img.data, 一切都很正常, 但是如果我是从保存的图片读取灰度图, 传入img.data, 它会告诉我QImage不能传入memoryview, 但是我打了断点, 也打印过, 它们确实都是memoryview, 而且

    2024年04月13日
    浏览(39)
  • 【OpenCV】OpenCV:计算机视觉的强大工具库

    摘要   OpenCV是一个广泛应用于计算机视觉领域的开源工具库,为开发者提供了丰富的图像处理和计算机视觉算法。本文将介绍OpenCV的功能和应用领域,并探讨它在实践中的重要性和前景。 📕作者简介: 热爱跑步的恒川 ,致力于C/C++、Java、Python等多编程语言,热爱跑步,

    2024年02月03日
    浏览(44)
  • opencv显示图片

      要使用OpenCV在Python中显示图像,您需要遵循以下步骤: 1. 首先,确保已经安装了OpenCV。您可以使用以下命令安装OpenCV: ``` pip install opencv-python ``` 2. 然后,编写一个简单的程序来读取并显示图像。以下是一个示例代码: ```python import cv2 # 读取图像 image = cv2.imread(\\\'exam

    2024年02月07日
    浏览(32)
  • OpenCV第 1 课 计算机视觉和 OpenCV 介绍

      我们人类可以通过眼睛看到五颜六色的世界,是因为人眼的视觉细胞中存在分别对红、绿、蓝敏感的 3 种细胞。其中的光感色素根据光线的不同进行不同比例的分解,从而让我们识别到各种颜色。   对人工智能而言,学会“ 看 ”也是非常关键的一步。那么机器人是如

    2024年01月24日
    浏览(47)
  • 【计算机视觉 · OpenCV】使用 OpenCV 调用手机摄像头

    Droidcam 是一款可以将手机变成网络摄像头的工具,我们可以利用 Droidcam 让 OpenCV 拥有调用手机摄像头的能力。 2.1 安装 DroidCam 在手机和电脑上分别安装 DroidCam 的客户端和服务端 下载地址:https://pan.baidu.com/s/1DrBn3P1Bx-SXa4d6oziifA?pwd=gr1o 提取码:gr1o 2.2 测试连接状态 手机和电脑需

    2024年02月09日
    浏览(47)
  • openCV上图片显示中文c++

    准备材料: 1、中文汉字库 2、中文显示扩展类 cvxFont.h cvxFont.cpp 编译脚本: CmakeLists.txt 测试代码: main.cpp

    2024年02月16日
    浏览(33)
  • OpenCV:创建窗口,图片显示和保存

    目录 cv2.waitKey() 窗口创建:cv2.namedWindow() 窗口大小调整:cv2.resizeWindow() 窗口显示:cv2.imshow() 关闭窗口:cv2.destroyAllWindows() 图片读取:cv2.imread() 图片保存:cv2.imwrite() 代码示例 waitKey()的基本逻辑:他会在一定时间内等待接收键盘的一个值; 返回值 为键盘按键的ASCII值; dela

    2024年01月19日
    浏览(83)
  • C++ 使用opencv加载并显示RGB图像和深度图像

    rgb图像是一般的彩色图像格式,深度图像是存储在xml文件中,c++读取代码如下: 当然,需要安装并配置opencv,配置opencv细节可参考其他博客 效果如下: 若opencv加载深度数据集失败,就请参考这篇博客,这是作者在加载深度数据时失败所写解决方法:https://mp.csdn.net/mp_blog/cr

    2024年02月12日
    浏览(32)
  • 计算机视觉(OpenCV+TensorFlow)

    本系列文章是OpenCV系列文章的第三篇,仍然跟随上篇内容主要聚焦于图像的一些操作 在通常情况下我们使用大小恒定的图像。但在某些情况下,我们需要使用不同分辨率的同幅图像,例如,在搜索图像中的某些内容比如脸部信息时,并不确定该内容在图像中占据的大小。这种

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包