关于OpenCV 从基础到深入的详解——四、图像的基本操作

四、图像的基本操作

(一)图像的读取与保存

  1. 支持的图像文件格式(如 JPEG、PNG、BMP 等)

OpenCV 支持多种常见的图像文件格式,每种格式都有其特点和应用场景。

  • JPEG(Joint Photographic Experts Group)格式:这是一种广泛使用的有损压缩图像格式。它通过丢弃一些图像数据来实现高压缩比,在人眼难以察觉的情况下减少文件大小。适用于存储自然场景的照片,如风景照、人物照等。JPEG 格式在压缩过程中可能会产生一些图像质量损失,特别是在高压缩率下,图像的细节和色彩精度可能会受到影响。

  • PNG(Portable Network Graphics)格式:这是一种无损压缩图像格式。它在压缩图像数据的同时不会丢失信息,能更好地保留图像的细节和透明度信息。PNG 格式常用于需要高质量图像的场景,如网页设计中的图标、图形元素,或者在图像编辑中需要保存图层信息时。它支持透明度通道,这使得图像在叠加或融合时更加灵活。

  • BMP(Bitmap)格式:这是一种简单的位图图像格式,通常是未压缩的。BMP 文件存储了图像的每个像素的信息,因此文件大小相对较大。它在 Windows 操作系统中广泛用于图像存储和显示,尤其适用于对图像质量要求较高且对文件大小不太敏感的情况,如一些简单的图形绘制和存储。

  • TIFF(Tagged Image File Format)格式:这是一种灵活且功能强大的图像格式,常用于印刷、出版等领域。TIFF 可以存储高质量的图像数据,支持多种颜色模式和压缩算法,包括无损压缩。它能够保存丰富的图像信息,如多层图像、色彩校正数据等,适合专业的图像编辑和处理工作。

  • GIF(Graphics Interchange Format)格式:GIF 格式主要用于简单的动画和图像。它使用有限的颜色表(最多 256 种颜色),通过存储多帧图像来实现动画效果。GIF 格式在网络上用于一些简单的动画图标、广告横幅等,由于其颜色限制,不太适合存储高质量的照片。

OpenCV 能够读取和处理这些格式的图像文件,使得用户可以方便地在不同的应用场景中使用各种类型的图像数据。

  1. 使用 imread () 函数读取图像的不同模式(彩色、灰度等)

imread()函数是 OpenCV 中用于读取图像的关键函数,它支持多种读取模式。

  • 彩色模式(IMREAD_COLOR):这是imread()函数的默认模式。在这种模式下,如果读取的图像是彩色图像(如 JPEG、PNG 格式的彩色图像),则会以彩色形式读取,每个像素点由三个通道(红、绿、蓝)组成,数据类型通常为CV_8UC3(8 位无符号整数,3 通道)。例如:
    Mat colorImage = imread("image.jpg", IMREAD_COLOR);
    如果读取的图像是灰度图像,imread()函数会尝试将其转换为彩色图像(这种转换可能会导致图像数据的一些变化,不过通常在显示等简单应用中不会有明显问题)。

  • 灰度模式(IMREAD_GRAYSCALE):当指定IMREAD_GRAYSCALE模式时,无论原始图像是彩色还是灰度,都会以灰度形式读取。在这种模式下,图像只有一个通道,数据类型通常为CV_8UC1(8 位无符号整数,单通道)。灰度图像的每个像素值表示该点的亮度信息。例如:
    Mat grayImage = imread("image.jpg", IMREAD_GRAYSCALE);
    这种模式在一些不需要颜色信息的图像处理任务中非常有用,如边缘检测、阈值分割等,因为处理灰度图像通常比处理彩色图像计算量更小。

  • 原始模式(IMREAD_UNCHANGED):使用IMREAD_UNCHANGED模式可以按图像的原始格式读取。如果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知智志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值