天天看点

opencv之灰度图与彩色图的对比

灰度图与彩色图的区别

所谓灰度色,就是指纯白、纯黑以及两者中的一系列从黑到白的过渡色。我们平常说所的黑白照片、黑白

电视,实际上都应该称为灰度照片、灰度电视才确切。灰度色中不包含任何色相,即不存在红色、黄色这

样的颜色。灰度隶属于RGB 色域(色域指色彩范围)。

我们已经知道,在RGB 模式中三原色光各有256个级别。由于灰度的形成是RGB 数值相等。而RGB 数值

相等的排列组合是256个,那么灰度的数量就是256级。其中除了纯白和纯黑以外,还有254种中间过渡色。

纯黑和纯白也属于反转色。

灰度的通常表示方法是百分比,范围从0%到100%。Photoshop 中只能输入整数,在Illustrator 和GoLive 允

许输入小数百分比。

注意这个百分比是以纯黑为基准的百分比。与RGB 正好相反,百分比越高颜色越偏黑,百分比越低颜色越

偏白。

灰度最高相当于最高的黑,就是纯黑。灰度最低相当于最低的黑,也就是“没有黑”,那就是纯白。

下面看具体的代码:

#include<iostream>
#include"opencv2/opencv.hpp"

using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{ 
   Mat grayim(600,800,CV_8UC1);
   Mat colorim(600,800,CV_8UC3);
   int i;
   int j;
   for(i = 0; i<grayim.rows; i++)
   	  for(j = 0;j<grayim.cols; j++)
              grayim.at<uchar>(i,j) = (i+j)%255; //取得单通道图像某一个像素点的灰度值

   for(i = 0; i<colorim.rows; i++)
   	  for(j = 0;j<colorim.cols; j++)
   	  {
                Vec3b pixel;
		pixel[0] = i%255; //b
		pixel[1] = j%255; //g
		pixel[2] = 0;     //r
		colorim.at<Vec3b>(i,j) = pixel; //取得多通道彩色图某一个像素点的rgb值
   	  }
    imshow("grayim",grayim);
    imshow("colorim",colorim);
    waitKey(0);//长时间的等待按键按下返回
    return 0;
}
           
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">彩色图</span>
           
opencv之灰度图与彩色图的对比

灰度图:

opencv之灰度图与彩色图的对比