opencv學習之路(9)、對比度亮度調整與通道分離


一、對比度亮度調整

 1 #include<opencv2/opencv.hpp>
 2 using namespace cv;
 3 
 4 #define WIN_NAME "輸出圖像"
 5 Mat src,dst;
 6 int contrast=20,bright=20;
 7 
 8 void onChange(int,void*){
 9     for (int i = 0; i < src.rows; i++)
10     {
11         for (int j = 0; j < src.cols; j++)
12         {
13             //saturate_cast<uchar>    溢出保護:if(data<0) data=0;    if(data>255) data=255;
14             dst.at<Vec3b>(i,j)[0]=saturate_cast<uchar>(src.at<Vec3b>(i,j)[0]*contrast*0.01+bright);
15             dst.at<Vec3b>(i,j)[1]=saturate_cast<uchar>(src.at<Vec3b>(i,j)[1]*contrast*0.01+bright);
16             dst.at<Vec3b>(i,j)[2]=saturate_cast<uchar>(src.at<Vec3b>(i,j)[2]*contrast*0.01+bright);
17         }
18     }
19     imshow("原圖",src);
20     imshow(WIN_NAME,dst);
21 }
22 
23 void main(){
24     src=imread("E://1.jpg");
25     dst=Mat::zeros(src.size(),src.type());
26     //Mat::zeros();//將矩陣元素置為0
27     //Mat::ones();//置1
28     namedWindow(WIN_NAME,CV_WINDOW_AUTOSIZE);
29     createTrackbar("對比度",WIN_NAME,&contrast,300,onChange,0);
30     createTrackbar("亮  度",WIN_NAME,&bright,200,onChange,0);
31 
32     onChange(contrast,0);//回調函數初始化
33     onChange(bright,0);
34 
35     waitKey(0);
36 
37 }

二、通道分離與合並

 1 #include<opencv2/opencv.hpp>
 2 using namespace cv;
 3 
 4 void main(){
 5     Mat img=imread("E://2.jpg");
 6     Mat dst;
 7     vector<Mat>channels;//定義Mat類型的向量
 8 
 9     split(img,channels);//通道分離
10     Mat blue=channels.at(0);
11     Mat green=channels.at(1);
12     Mat red=channels.at(2);
13 
14     threshold(blue,blue,200,255,THRESH_BINARY);//二值化:大於200的賦值255,小於200的賦值0
15     threshold(green,green,200,255,THRESH_BINARY);
16     threshold(red,red,200,255,THRESH_BINARY);
17 
18     merge(channels,dst);//通道合並
19 
20     imshow("原圖",img);
21     imshow("blue",blue);
22     imshow("green",green);
23     imshow("red",red);
24     imshow("dst",dst);
25     waitKey(0);
26 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM