OpenCV(1).数字图像

176 阅读2分钟
  1. 数字图像-数字图像在计算机中的表示方式
  2. 灰度图与彩色图
  3. 数字图像的存储方式
  4. 使用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;
}

显示效果