- 数字图像-数字图像在计算机中的表示方式
- 灰度图与彩色图
- 数字图像的存储方式
- 使用Mat类读取本地图像并显示
什么是数字图像?
- 我们在电子设备上看到的图像,都可以称为数字图像
数字图像在计算机中的表示方式
上图左侧的就是我们在计算机中看到的一幅图像
- 对于计算机来说,这幅图像只是一些亮度不同的点,每个点称为一个像素,因为一个像素很小肉眼识别不出。
- 当我们把上图左侧图像中箭头所指的圆形区域放到可看到右侧图像,可以看到灰度深浅不一的小方格,每个小方格就是一个像素
- 对于一幅大小MxN的图像,可以用MxN大小的矩阵表示,每个矩阵元素代表一个元素,元素的值表示这个位置图像的亮度,一般来说值越大该店就越亮
灰度图与彩色图
- 上面的图是一幅灰度图,使用二维矩阵MxN表示,日常中我们见到的更多是彩色图,彩色图具有多通道,使用三位矩阵MxNx3表示
- 对于图像显示,每个像素使用无符号8位整数(0~255)表示像素的值
数字图像的存储方式
- 图像数据在计算机内存的存储顺序为自左向右,自上向下,即图像的左上角为原点
- 单通道灰度图像数据的存储
- Iij代表第i行第j列的像素值
- RGB三通道彩色图像数据存储
- 每个像素用三个字节表示Bij,Gij,Rij
- 注意在OpenCV中R彩色图像的通道顺序为BGR
使用Mat类读取本地图像并显示
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread(".../opencv/sources/samples/data/lena.jpg");
imshow("img", img);
waitKey(30000);
return 0;
}
显示效果