OpenCV实战(4)——像素操作
0. 前言
为了构建计算机视觉应用程序,需要能够访问图像内容,并修改或创建得到新图像。本节将介绍如何操作图片元素(即像素),我们将介绍如何扫描图像并处理其每个像素;同时还将学习如何高效的进行处理,因为即使是中等尺寸的图像也可能包含数十万个像素。
1. 图像的基本组成
我们已经知道,本质上图像是数值矩阵,因此在 OpenCV
处理图像时我们使用 cv::Mat
数据结构来操作图像。矩阵的每个元素表示一个像素,对于灰度图像(黑白图像),像素是无符号的 8
位值,其中 0
对应于黑色,255
对应于白色;在彩色图像中,需要三个原色值才能表达自然界中的不同颜色。这是因为人类的视觉系统是由三色构成的,视网膜上的三种视锥细胞将颜色信息传递给大脑。这意味着对于彩色图像,每个像素必须使用三个值表示。
在数字图像中,常用的原色通道为红色、绿色和蓝色。因此,在这种情况下,矩阵元素由 8
位值的三元组组成。通常情况下 8
位通道已经足够表示复杂颜色,但有些特殊应用也可能需要 16
位通道(例如医学成像)。
在《OpenCV 基础》一节中,我们了解了 OpenCV
还可以使用其他类型的像素值创建矩阵(