判断一张图像是红外图像还是可见光图像,需要将图像转化到HSV空间进行判断。计算S通道的值,如果值为0或者接近0,则为近红外图像。
注:
图像处理一般在HSV空间,有利于图像分割,RGB图像空间各个颜色连接程度比较大;
Mat Image=imread("test.jpg");
Mat HSVMat,mergeMat;
vector<Mat> planes;
cvtColor(Image,HsvMat,COLOR_BGR2HSV);
split(HSVMat,planes);
Scalar myMean;
myMean=mean(HSVMat);
couut<<"S平均值"<<myMean[1]<<endl;
equalizeHist(planes[2],planes[2]);//对V通道进行直方图均衡化
if(mymean[1]==0)
{
cout << "该图为近红外图像" <<endl;
}