通道的拆分与合并

来源:互联网 发布:java面试葵花宝典2015 编辑:程序博客网 时间:2024/05/17 15:57

可以先拆分,在利用表查找改变每个通道的对比度后,再合并

#include<opencv2\opencv.hpp>#include<opencv2\imgproc\imgproc.hpp>#include<opencv2\core\core.hpp>#include<vector>using namespace cv;using namespace std;int main(){    Mat image=imread("F:\\opencv_test\\1.jpg");    vector<Mat> vec;    //拆分通道    split(image,vec);    Mat imageRed,imageBlue,imageGreen,mergeImage,mergeImage2;    imageRed=vec[0];    imageGreen=vec[1];    imageBlue=vec[2];    //等价于 imageRed=vec.at(0);imageGreen=vec.at[1];imageBlue=vec.at(2);    Mat lookup(1,256,CV_8U);    for(int i=0;i<256;i++){        lookup.at<uchar>(i)=255-i;    }    LUT(imageRed,lookup,imageRed);    LUT(imageGreen,lookup,imageGreen);    LUT(imageBlue,lookup,imageBlue);    mergeImage2=imageRed+imageGreen+imageBlue;    //合并通道    merge(vec,mergeImage);    namedWindow("first channel",0);    imshow("first channel",imageBlue);    namedWindow("second channel",0);    imshow("second channel",imageGreen);    namedWindow("third channel",0);    imshow("third channel",imageRed);    namedWindow("merge image",0);    imshow("merge image",mergeImage);    namedWindow("merge image2",0);    imshow("merge image2",mergeImage2);    waitKey(0);    return 0;}
0 0
原创粉丝点击