1、概述
案例:輸出一張原圖,增加該圖片的亮度及對比度
基本概念:
亮度:RGB的像素值范圍是0~255,我們稱從0——>255隨著像素值的增加圖像會越來月亮,反之會越來越暗。所以我們可以通過對圖像像素加減來改變圖像的亮度。
對比度:其反應(yīng)的是圖像中各像素的差異(層次感、落差感),差異越大對比度越大,圖像越清晰。差異越小對比度越小,圖像越模糊。
2、示例代碼
Mat src = imread(filePath);
imshow("src",src);
int height = src.rows;
int width = src.cols;
int channels = src.channels();
double alpha = 1.2;//像素增加權(quán)重,即:每個像素都擴大1.2倍,用于增加圖像的對比度
double beta = 50;//用于增加亮度
Mat dst;//輸出圖像
dst = Mat::zeros(src.size(),src.type());//創(chuàng)建一個都是0的Mat,即純黑色的mat
//下面是增加亮度及對比度的關(guān)鍵代碼
for(int y = 0;y<height;y++){
for(int x = 0;x<width;x++){
dst.at<Vec3b>(y,x)[0] = saturate_cast<uchar>(alpha*src.at<Vec3b>(y,x)[0]+beta);
dst.at<Vec3b>(y,x)[1] = saturate_cast<uchar>(alpha*src.at<Vec3b>(y,x)[1]+beta);
dst.at<Vec3b>(y,x)[2] = saturate_cast<uchar>(alpha*src.at<Vec3b>(y,x)[2]+beta);
}
}
QImage qImage = QImage(dst.data,dst.cols,dst.rows,dst.step,QImage::Format_BGR888);
label->setFixedSize(QSize(qImage.width(),qImage.height()));
label->setScaledContents(true);
label->setPixmap(QPixmap::fromImage(qImage));
3、示例圖片
文章來源:http://www.zghlxwxcb.cn/news/detail-523201.html
?本文福利,莬費領(lǐng)取Qt開發(fā)學(xué)習(xí)資料包、技術(shù)視頻,內(nèi)容包括(C++語言基礎(chǔ),Qt編程入門,QT信號與槽機制,QT界面開發(fā)-圖像繪制,QT網(wǎng)絡(luò),QT數(shù)據(jù)庫編程,QT項目實戰(zhàn),QSS,OpenCV,Quick模塊,面試題等等)↓↓↓↓↓↓見下面↓↓文章底部點擊莬費領(lǐng)取↓↓文章來源地址http://www.zghlxwxcb.cn/news/detail-523201.html
到了這里,關(guān)于OpenCV增加圖像的亮度及對比度的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!