OpenCV中读取、显示、保存图像及获取图像属性操作讲解及演示(附源码)

简介: OpenCV中读取、显示、保存图像及获取图像属性操作讲解及演示(附源码)

需要源码和图片请点赞关注收藏后评论区留言私信~~~

OpenCV的作用在于让开发人员更容易地通过编码来处理图像。那么,处理图像需要执行哪些操作呢?图像处理的基本操作包含4个方面的内容:读取图像、显示图像、保存图像和获取图像属性。其中,常用的图像属性有3个:shape、size和dtype。下面将依次详解实现图像处理的4个基本操作,并分别阐明常用的3个图像属性各自的含义及其使用方法

整体结构如下

一、读取图像

要对一幅图像进行处理,首先要做的就是读取这副图像,用到imread方法

image=cv2.imread(filename,flags)

filename 要读取的图像的完整文件名 最后不要有中文和空格

flags 读取图像颜色类型的标记 当flags的默认值为1时,表示读取的是彩色图像,此时flags值可以省略,当flags值为0时。表示读取的是灰度图像

下面演示读取当前项目目录下的图像

这里输出的是图像的像素值

代码如下

import cv2
# 读取3.1.jpg,等价于image = cv2.imread("3.1.jpg",1)
image = cv2.imread("3.1.jpg")
print(image)  # 打印3.1.jpg

二、显示图像

相比上面打印出来图片密密麻麻的像素值,下面我们让这副图形直观的显示出来

对此opencv提供了imshow方法

imshow(winname,mat)

参数说明

winname:显示图像的窗口名称

mat:要显示的图像

waitKey方法用于等待用户按下键盘上按键的时间,当用户按下键盘上的任意按键时,将执行waitKey方法,并且获取waitKey方法的返回值

retval=cv2.waitKey(delay)

retval 与被按下的按键对应的ASCII码,如果没有按键被按下,则返回值为-1

delay 等待用户按下键盘上按键的时间,单位为ms,当为0 负数或者为空时,表示无限等待用户按下键盘上按键的时间

显示图像演示如下

同样也可以显示灰度图

import cv2
image = cv2.imread("3.1.jpg")  # 读取3.1.jpg
cv2.imshow("flower", image)  # 在名为flower的窗口中显示3.1.jpg
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 销毁所有窗口

三、保存图像

在实际开发的过程中,对一幅图像进行一系列的处理后,需要保存处理图像后的结果,提供了imwrite方法来保存图像

cv2.imwrite(filename,img)

参数说明

filename:保存图像时的路径

img:要保存的图像

保存图像演示

import cv2
image = cv2.imread("3.1.jpg")  # 读取3.1.jpg
# 把3.1.jpg保存为E盘根目录下的、Pictures文件夹中的1.jpg
cv2.imwrite(" C:/Users/Administrator/Desktop/test.jpg", image)

四、获取图像属性

在处理图像的过程中,经常需要获取图像的大小、类型等属性。为此Opencv提供了shape size dtype三个常用属性 具体含义分别如下

shape:如果时彩色图像,那么获取的是一个包含图像的水平像素 垂直像素和通道数的数组,如果是灰度图像 则只有垂直像素和水平像素

size:获取的是图像包含的像素个数,其值为 水平像素×垂直像素×通道数 灰度图像的通道数为1

dtype:获取的是图像的数据类型

下面分别获取彩色图像和灰度图像的属性

import cv2
image_Color = cv2.imread("3.1.jpg")  # 读取3.1.jpg
print("获取彩色图像的属性:")
print("shape =", image_Color.shape)  # 打印彩色图像的(垂直像素,水平像素,通道数)
print("size =", image_Color.size)  # 打印彩色图像包含的像素个数
print("dtype =", image_Color.dtype)  # 打印彩色图像的数据类型
image_Gray = cv2.imread("3.1.jpg", 0)  # 读取与3.1.jpg(彩色图像)对应的灰度图像
print("获取灰度图像的属性:")
print("shape =", image_Gray.shape)  # 打印灰度图像的(垂直像素,水平像素)
print("size =", image_Gray.size)  # 打印灰度图像包含的像素个数
print("dtype =", image_Gray.dtype)  # 打印灰度图像的数据类型

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
15天前
|
机器学习/深度学习 监控 算法
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
30 3
|
20天前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
187 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
|
2月前
|
算法 计算机视觉
opencv图像形态学
图像形态学是一种基于数学形态学的图像处理技术,它主要用于分析和修改图像的形状和结构。
44 4
|
18天前
|
缓存 并行计算 Ubuntu
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
本文是关于在Jetson AGX Xavier上编译FFmpeg(3.4.1)和OpenCV(3.4.0)的详细教程,包括编译需求、步骤、测试和可能遇到的问题及其解决方案。还提供了Jetson AGX Xavier编译CUDA版本的OpenCV 4.5.0的相关信息。
45 4
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
|
18天前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
80 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
7天前
|
Ubuntu 编译器 计算机视觉
Ubuntu系统编译OpenCV4.8源码
【10月更文挑战第17天】只要三步即可搞定,第一步是下载指定版本的源码包;第二步是安装OpenCV4.8编译需要的编译器与第三方库支持;第三步就是编译OpenCV源码包生成安装文件并安装。
26 4
|
2月前
|
存储 计算机视觉
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
本文介绍了使用OpenCV进行图像读取、显示和存储的基本操作,以及如何绘制直线、圆形、矩形和文本等几何图形的方法。
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
|
3月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
WK
|
3月前
|
编解码 计算机视觉 Python
如何在OpenCV中进行图像转换
在OpenCV中,图像转换涉及颜色空间变换、大小调整及类型转换等操作。常用函数如`cvtColor`可实现BGR到RGB、灰度图或HSV的转换;`resize`则用于调整图像分辨率。此外,通过`astype`或`convertScaleAbs`可改变图像数据类型。对于复杂的几何变换,如仿射或透视变换,则可利用`warpAffine`和`warpPerspective`函数实现。这些技术为图像处理提供了强大的工具。
WK
95 1
|
4月前
|
Ubuntu 编译器 计算机视觉
Ubuntu系统下编译OpenCV4.8源码
在Ubuntu上源码安装OpenCV 4.8分为三步:1) 下载源码包,使用`wget`命令;2) 安装依赖,如`g++`, `cmake`, `make`等;3) 创建编译目录,运行`cmake`配置,接着`make`编译,最后`sudo make install`安装。安装完成后,通过编写和运行一个简单的OpenCV C++程序来验证环境配置正确性。
123 10