#include "cv.h"
#include "highgui.h"
using namespace cv;
int main()
{
Mat src = imread("picture.bmp",-1);
namedWindow("picture",1);
imshow("picture",src);
Mat tmp0 = Mat(src.cols,src.rows,CV_8U,Scalar::all(0));
Mat tmp1 = Mat(src.cols,src.rows,CV_8U,Scalar::all(0));
Mat tmp2 = Mat(src.cols,src.rows,CV_8U,Scalar::all(0));
vector<Mat> mv;
mv.push_back(tmp0);
mv.push_back(tmp1);
mv.push_back(tmp2);
split(src,mv);
Mat blue = mv.at(0);
Mat green = mv.at(1);
Mat red = mv.at(2);
imshow("blue",blue);
imshow("green",green);
imshow("red",red);
Mat r,g,b;
equalizeHist(blue,b);
equalizeHist(green,g);
equalizeHist(red,r);
vector<Mat> re;
re.push_back(b);
re.push_back(g);
re.push_back(r);
Mat dst;
merge(re,dst);
imshow("dst",dst);
waitKey();
return 0;
}
本文详细介绍了如何使用OpenCV库读取、显示图片,并通过色彩分解将其转换为RGB分量。进一步,实现了色彩均衡化处理,并展示了如何分别显示蓝色、绿色和红色通道的图像。最后,通过合并均衡化的色彩通道生成最终处理后的图片。
2042

被折叠的 条评论
为什么被折叠?



