先放原图
#include <cv.h> #include <highgui.h> #include <iostream> #include "opencv2/opencv.hpp" using namespace cv; using namespace std; int main() { vector<Mat> channels; Mat imageLChannel; Mat imageaChannel; Mat imagebChannel; Mat src = imread("timg.jpg"); //图片一定要放在工程文件夹里 //当然也可以使用图片的绝对路径,如E盘下的timg文件读取: Mat src = imread("E:\\timg.jpg"); Mat srcImage4; cvtColor(src, srcImage4, CV_RGB2Lab);//将图像由RGB形式转换为Lab形式 split(srcImage4, channels);//分离色彩通道 imageLChannel = channels.at(0); //L通道 imageaChannel = channels.at(1); //a通道 imagebChannel = channels.at(2); //b通道 imshow("imageL", imageLChannel); imshow("imagea", imageaChannel); imshow("imageb", imagebChannel); waitKey(); return 0; }L通道图像如下:
a通道:
b通道: