0 簡介
今天學(xué)長向大家分享一個(gè)畢業(yè)設(shè)計(jì)項(xiàng)目
畢業(yè)設(shè)計(jì) opencv圖像增強(qiáng)算法系統(tǒng)
項(xiàng)目運(yùn)行效果:
畢業(yè)設(shè)計(jì) 基于機(jī)器視覺的圖像增強(qiáng)
項(xiàng)目獲?。?/strong>文章來源:http://www.zghlxwxcb.cn/news/detail-802314.html
https://gitee.com/sinonfin/algorithm-sharing文章來源地址http://www.zghlxwxcb.cn/news/detail-802314.html
1. 基于直方圖均衡化的圖像增強(qiáng)
直方圖均衡化是通過調(diào)整圖像的灰階分布,使得在0~255灰階上的分布更加均衡,提高了圖像的對(duì)比度,達(dá)到改善圖像主觀視覺效果的目的。對(duì)比度較低的圖像適合使用直方圖均衡化方法來增強(qiáng)圖像細(xì)節(jié)。
彩色圖像的直方圖均衡化實(shí)現(xiàn):
?
#include
#include
#include
using namespace cv;
int main(int argc, char *argv[])
{
Mat image = imread("Test.jpg", 1);
if (image.empty())
{
std::cout << "打開圖片失敗,請(qǐng)檢查" << std::endl;
return -1;
}
imshow("原圖像", image);
Mat imageRGB[3];
split(image, imageRGB);
for (int i = 0; i < 3; i++)
{
equalizeHist(imageRGB[i], imageRGB[i]);
}
merge(imageRGB, 3, image);
imshow("直方圖均衡化圖像增強(qiáng)效果", image);
waitKey();
return 0;
}
直方圖均衡化增強(qiáng)前原圖像:
直方圖均衡化增強(qiáng)后效果:
2. 基于拉普拉斯算子的圖像增強(qiáng)
使用中心為5的8鄰域拉普拉斯算子與圖像卷積可以達(dá)到銳化增強(qiáng)圖像的目的,拉普拉斯算子如下圖所示:
拉普拉斯算子可以增強(qiáng)局部的圖像對(duì)比度:
?
#include
#include
#include
using namespace cv;
int main(int argc, char *argv[])
{
Mat image = imread("Test.jpg", 1);
if (image.empty())
{
std::cout << "打開圖片失敗,請(qǐng)檢查" << std::endl;
return -1;
}
imshow("原圖像", image);
Mat imageEnhance;
Mat kernel = (Mat_(3, 3) << 0, -1, 0, 0, 5, 0, 0, -1, 0);
filter2D(image, imageEnhance, CV_8UC3, kernel);
imshow("拉普拉斯算子圖像增強(qiáng)效果", imageEnhance);
waitKey();
return 0;
}
拉普拉斯算子增強(qiáng)前原圖像:
拉普拉斯算子增強(qiáng)后效果:
3. 基于對(duì)數(shù)Log變換的圖像增強(qiáng)
對(duì)數(shù)變換可以將圖像的低灰度值部分?jǐn)U展,顯示出低灰度部分更多的細(xì)節(jié),將其高灰度值部分壓縮,減少高灰度值部分的細(xì)節(jié),從而達(dá)到強(qiáng)調(diào)圖像低灰度部分的目的。變換方法:
對(duì)數(shù)變換對(duì)圖像低灰度部分細(xì)節(jié)增強(qiáng)的功能過可以從對(duì)數(shù)圖上直觀理解:
x軸的0.4大約對(duì)應(yīng)了y軸的0.8,即原圖上00.4的低灰度部分經(jīng)過對(duì)數(shù)運(yùn)算后擴(kuò)展到00.8的部分,而整個(gè)0.41的高灰度部分被投影到只有0.81的區(qū)間,這樣就達(dá)到了擴(kuò)展和增強(qiáng)低灰度部分,壓縮高灰度部分的值的功能。
從上圖還可以看到,對(duì)于不同的底數(shù),底數(shù)越大,對(duì)低灰度部分的擴(kuò)展就越強(qiáng),對(duì)高灰度部分的壓縮也就越強(qiáng)。
?
#include
#include
using namespace cv;
int main(int argc, char *argv[])
{
Mat image = imread("Test.jpg");
Mat imageLog(image.size(), CV_32FC3);
for (int i = 0; i < image.rows; i++)
{
for (int j = 0; j < image.cols; j++)
{
imageLog.at(i, j)[0] = log(1 + image.at(i, j)[0]);
imageLog.at(i, j)[1] = log(1 + image.at(i, j)[1]);
imageLog.at(i, j)[2] = log(1 + image.at(i, j)[2]);
}
}
//歸一化到0~255
normalize(imageLog, imageLog, 0, 255, CV_MINMAX);
//轉(zhuǎn)換成8bit圖像顯示
convertScaleAbs(imageLog, imageLog);
imshow("Soure", image);
imshow("after", imageLog);
waitKey();
return 0;
}
對(duì)數(shù)Log變換增強(qiáng)前原圖像:
對(duì)數(shù)Log變換增強(qiáng)后效果:
對(duì)數(shù)變換對(duì)于整體對(duì)比度偏低并且灰度值偏低的圖像增強(qiáng)效果較好。
4. 基于伽馬變換的圖像增強(qiáng)
伽馬變換主要用于圖像的校正,將灰度過高或者灰度過低的圖片進(jìn)行修正,增強(qiáng)對(duì)比度。變
伽馬變換對(duì)圖像的修正作用其實(shí)就是通過增強(qiáng)低灰度或高灰度的細(xì)節(jié)實(shí)現(xiàn)的,從伽馬曲線可以直觀理解:
γ值以1為分界,值越小,對(duì)圖像低灰度部分的擴(kuò)展作用就越強(qiáng),值越大,對(duì)圖像高灰度部分的擴(kuò)展作用就越強(qiáng),通過不同的γ值,就可以達(dá)到增強(qiáng)低灰度或高灰度部分細(xì)節(jié)的作用。
伽馬變換對(duì)于圖像對(duì)比度偏低,并且整體亮度值偏高(對(duì)于于相機(jī)過曝)情況下的圖像增強(qiáng)效果明顯。
?
#include
#include
using namespace cv;
int main(int argc, char *argv[])
{
Mat image = imread("Test.jpg");
Mat imageGamma(image.size(), CV_32FC3);
for (int i = 0; i < image.rows; i++)
{
for (int j = 0; j < image.cols; j++)
{
imageGamma.at(i, j)[0] = (image.at(i, j)[0])*(image.at(i, j)[0])*(image.at(i, j)[0]);
imageGamma.at(i, j)[1] = (image.at(i, j)[1])*(image.at(i, j)[1])*(image.at(i, j)[1]);
imageGamma.at(i, j)[2] = (image.at(i, j)[2])*(image.at(i, j)[2])*(image.at(i, j)[2]);
}
}
//歸一化到0~255
normalize(imageGamma, imageGamma, 0, 255, CV_MINMAX);
//轉(zhuǎn)換成8bit圖像顯示
convertScaleAbs(imageGamma, imageGamma);
imshow("原圖", image);
imshow("伽馬變換圖像增強(qiáng)效果", imageGamma);
waitKey();
return 0;
}
伽馬變換增強(qiáng)前原圖像:
伽馬變換增強(qiáng)后效果:
軟件實(shí)現(xiàn)效果
最后
項(xiàng)目獲?。?/strong>
https://gitee.com/sinonfin/algorithm-sharing
到了這里,關(guān)于計(jì)算機(jī)畢業(yè)分享(含算法) opencv圖像增強(qiáng)算法系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!