认识图像及图像的基本操作

  • 在计算机看来,图像是一堆亮度各异的点。一副尺寸为M * N 的图像,可以用一个M * N 的矩阵来表示,矩阵元素的值表示这个位置上的像素亮度,一般来说像素值越大表示该点越亮。

  • 一般来说,灰度图用 2 维矩阵表示,彩色(多通道)图像用 3 维矩阵(M * N * 3)表示。目前大部分设备使用无符号的 8 位整数(类型为CV_8U)表示像素亮度

  • OpenCV中,RGB图像通道顺序为BGR,顺序刚好和平时的RGB相反

  • Mat类是一个非常优秀的图像类,它同时也是一个通用的矩阵类,可以创建和操作多维矩阵。

//创建一个3行2列类型为CV_8UC2的图像
Mat mat = new Mat(3,2,CvType.CV_8UC2,new Scalar(0,0,255))
  • Mat的很多构造函数中涉及到类型type,type类型可以是CV_8UC1、CV_8UC2、CV_8UC3、CV_16SC1、CV_64FC4 等等;里面的8U表示8位无符号整数,16S表示16位有符号整数,64F表示64位浮点数(double类型);C后面表示通道数,例:C1表示一个通道,C4表示四个通道,以此类推。如果需要更多通道数,需要使用宏CV_8UC(n)。
Mat mat = new Mat(3,2,CV_8UC(5));//创建行数为3,列数为2,通道为5的图像
  • 有些type中没有注明通道数,如CV_32F,这种情况下它表示单通道

你可能感兴趣的:(认识图像及图像的基本操作)