Opencv (上) 常见的图片格式: 1、jpg(jpeg) : 用最少的磁盘空间得到较好的图片质量 2、png: 无损压缩的位图片形格式 常见的图片类型: 【黑白】【彩色】 图片的本质: 由像素点组成的矩阵,每个元素(像素点)都是在0-255之间 为什么每个像素点都是界于0-255之间? 1、位图模式(黑白图像) 仅仅只有1位深度的图像 ->(0,1,1,1,0 …) 0->纯黑色 1->纯白色 2、灰度图像:【0,255】 有8位深度的图像 (0,0,0,0,0,0,0,0,0) ->2**0=1 (1,1,1,1,1,1,1,1,1) ->2**8 = OpenCV 是一个强大的开源计算机视觉库,广泛应用于图像处理和计算机视觉领域。本文将浅谈OpenCV的基础知识,包括常见的图片格式、图片的本质以及如何使用OpenCV进行基本操作。 我们来了解一下常见的图片格式。JPEG(jpg)是一种广泛使用的有损压缩格式,它能在较小的磁盘空间内保持较高的图片质量。PNG则是一种无损压缩的位图格式,适用于需要透明背景或高质量图像的场合。 图片的本质是由像素点组成的矩阵,每个像素点都有一个数值,这个数值通常在0到255之间。对于黑白图像,也称为位图模式,每个像素只有一位深度,0表示纯黑色,1表示纯白色。灰度图像则具有8位深度,数值范围是0到255,可以表示256级灰度。彩色图像通常使用RGB模式,每个像素由红、绿、蓝三个通道组成,每个通道也是8位深度,因此可以产生256的三次方,即16777216种不同的颜色。 使用OpenCV读取图片时,`cv2.imread()`函数是关键。例如,`cv2.imread(path, 0)`会读取指定路径的图片,并将其转换为灰度图像,`1`则表示读取彩色图像。读取后的图像以二维numpy数组的形式存储,每个元素的类型为`uint8`,表示0到255之间的无符号整数。 图片的裁剪可以通过numpy的切片操作实现,例如`img[开始行:结束行, 开始列:结束列]`可以截取图像的一部分。水平或垂直拼接两个图像可以使用`np.vstack()`或`np.hstack()`。 OpenCV还支持图片的保存,使用`cv2.imwrite()`函数,第一个参数是保存路径,第二个参数是要保存的图像矩阵。 除了基本的读取和处理,OpenCV还能生成随机图像,例如`np.random.randint(0, 255, (尺寸, 尺寸, 3), dtype='uint8')`可以创建一个指定大小的彩色图像,像素值随机分布在0到255之间。 此外,OpenCV可以进行彩色图像的通道拆分和合并。`img[:,:,0]`、`img[:,:,1]`和`img[:,:,2]`分别对应BGR图像的蓝、绿、红通道。`cv2.split()`函数可以一次性拆分所有通道,而`cv2.merge()`则用于合并通道。通过修改或单独显示某个通道,可以实现特定颜色效果。 色彩空间转换是OpenCV的一个重要功能。例如,RGB到HSV的转换可以帮助我们更好地处理颜色信息,因为在HSV色彩空间中,颜色更接近人眼的感知。`cv2.cvtColor()`函数可以完成不同色彩空间之间的转换。 OpenCV提供了一系列接口来处理和分析图像,包括读取、显示、裁剪、拼接、保存、随机生成、通道操作和色彩空间转换等。这些基础操作构成了计算机视觉应用的基石,对于理解和开发图像处理算法至关重要。通过熟练掌握这些技能,我们可以构建复杂的图像分析系统,例如目标检测、图像识别和视频处理等。
- 粉丝: 4
- 资源: 900
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Desktop (2).zip
- 考研冲刺模拟试题50道及解析
- 11月美宝莲专卖店店内海报 店内海报完稿310mmX360mm-op.ai
- Python 中实现十大排序算法
- 基于 Java 实现的24点卡牌游戏课程设计
- 基于ssm台球俱乐部管理系统 框架html + css + jquery + jsp + java + ssm + MySQL 用户类型 管理员 admin 123456 普通用户 002 0
- 纸中世界-跳跃游戏.sb3
- 通过示例在 Python 中解释 SOLID 原则 .zip
- 11月美宝莲专卖店背柜完稿740mmX400mm
- 基于ssm台球俱乐部管理系统 框架html + css + jquery + jsp + java + ssm + MySQL