資源簡介
數字圖像處理基本處理之一:空域增強。
一、圖象灰度變換;
二、圖象平滑;
三、圖象銳化;
代碼片段和文件信息
#include?
#include?“opencv2/core/core.hpp“
#include?“opencv2/highgui/highgui.hpp“
#include?“opencv2/imgproc/imgproc.hpp“
#include?
#include?
using?namespace?cv;
using?namespace?std;
//?得到圖像的直方圖
MatND?getHistogram(Mat?&image)
{
MatND?hist;
int?channels[]?=?{?0?};
int?dims?=?1;
int?histSize[]?=?{?256?};
float?granges[]?=?{?0?255?};
const?float?*ranges[]?=?{?granges?};
calcHist(&image?1?channels?Mat()?hist?dims?histSize?ranges);
return?hist;
}
//--------------------?-
//作者:Jasen_Fu
//來源:CSDN
//原文:https?://blog.csdn.net/piaoxuezhong/article/details/54588270?
//版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
?//?將圖像直方圖展示出來??
Mat?getHistogramImage(Mat?&image)
{
MatND?hist?=?getHistogram(image);
Mat?showImage(256?256?CV_8U?Scalar(0));
int?i;
double?maxValue?=?0;
minMaxLoc(hist?0?&maxValue?0?0);
for?(i?=?0;?i?256;?i++)
{
float?value?=?hist.at(i);
int?intensity?=?saturate_cast(256?-?256?*?(value?/?maxValue));
rectangle(showImage?Point(i?256?-?1)?Point((i?+?1)?-?1?intensity)?Scalar(255));
}
return?showImage;
}
//--------------------?-
//作者:Jasen_Fu
//來源:CSDN
//原文:https?://blog.csdn.net/piaoxuezhong/article/details/54588270?
//版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
//得到直方圖均衡函數
Mat?getHistogram_Equalization(Mat?&image)
{
Mat?grayImg;
cvtColor(image?grayImg?CV_RGB2GRAY);//將rgb圖像轉化為灰度圖
int?rowNumber?=?grayImg.rows;//得到行
int?colNumber?=?grayImg.cols;//得到列
int?sumNumber?=?rowNumber?*?colNumber;//得到圖像整個像素個數
Mat?dstImg(rowNumber?colNumber?CV_8UC1?Scalar(0?0?0));//初始化直方圖均衡化后的圖
double?hist[256]?=?{?0.00?};//直方圖
double?dhist[256]?=?{?0.00?};//直方圖歸一化圖
double?Dhist[256]?=?{?0.00?};//直方圖積分圖,每一個像素點
for?(int?i?=?0;?i? {
uchar*?data?=?grayImg.ptr(i);
for?(int?j?=?0;?j? {
int?temp?=?data[j];//得到圖像像素值
hist[temp]?=?hist[temp]?+?1;//將相應像素值在直方圖中加1
}
}
for?(int?i?=?0;?i?256;?i++)//遍歷直方圖,得到歸一化直方圖和積分圖
{
dhist[i]?=?hist[i]?/?sumNumber;//得到歸一化圖
for?(int?j?=?0;?j?<=?i;?j++)
{
Dhist[i]?=?Dhist[i]?+?dhist[j];?//得到積分圖
}
}
for?(int?i?=?0;?i? {
uchar*?data1?=?dstImg.ptr(i);
uchar*?data2?=?grayImg.ptr(i);
for?(int?j?=?0;?j? {
int?temp1?=?data2[j];?//查找到原始圖相應位置的像素值
int?temp2?=?(int)(Dhist[temp1]?*?255);?//在積分圖中找到相應像素值的映射值
data1[j]?=?temp2;//將映射值賦值給目標圖像相應值
}
}
return?dstImg;
}
//--------------------?-
// 作者:Vencent_1993
// 來源:CSDN
// 原文:https?://blog.csdn.net/qq_29441995/article/details/52503675?
//版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
//?使用Rect繪制直方圖
void?drawHist_Rect(const?cv::Mat&?hist?cv::Mat&?canvas?const?cv::Scalar&?color)
{
CV_Assert(!hist.empty()?&&?hist.cols?==?1);
CV_Assert(hist.depth()?==?CV_32F?&&?hist.channels()?==?1);
CV_Assert(!canvas.empty()?&&?canvas.cols?>=?hist.rows);
const?int?width?=?canvas.cols;
const?int?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????58368??2018-12-27?20:11??ConsoleApplication2\.vs\ConsoleApplication2\v15\.suo
?????文件???20848640??2018-12-27?20:11??ConsoleApplication2\.vs\ConsoleApplication2\v15\Browse.VC.db
?????文件?????327680??2018-11-01?19:15??ConsoleApplication2\.vs\ConsoleApplication2\v15\ipch\1f9c76ae7d96a455.ipch
?????文件??101449728??2018-11-01?19:19??ConsoleApplication2\.vs\ConsoleApplication2\v15\ipch\971a0e0ce1d5e1b0.ipch
?????文件??101908480??2018-12-27?16:32??ConsoleApplication2\.vs\ConsoleApplication2\v15\ipch\AutoPCH\340d1b6cfcdd9813\CONSOLEAPPLICATION2.ipch
?????文件??101449728??2018-11-08?17:39??ConsoleApplication2\.vs\ConsoleApplication2\v15\ipch\AutoPCH\ea4648ec18f242bb\CONSOLEAPPLICATION2.ipch
?????文件??????63980??2017-04-01?21:45??ConsoleApplication2\ConsoleApplication2\1.jpg
?????文件??????27410??2017-04-01?21:42??ConsoleApplication2\ConsoleApplication2\2.jpg
?????文件??????36132??2018-12-27?20:09??ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.cpp
?????文件???????7997??2018-12-27?17:21??ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.vcxproj
?????文件????????964??2018-12-27?17:21??ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.vcxproj.filters
?????文件????????165??2018-11-01?19:08??ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.vcxproj.user
?????文件?????867906??2005-02-16?00:41??ConsoleApplication2\ConsoleApplication2\g01.tif
?????文件?????294630??2006-04-04?00:35??ConsoleApplication2\ConsoleApplication2\g02.tif
?????文件?????544014??2006-12-29?11:31??ConsoleApplication2\ConsoleApplication2\g03.tif
?????文件?????248390??2007-06-14?23:06??ConsoleApplication2\ConsoleApplication2\g04.tif
?????文件?????922836??2007-06-16?00:25??ConsoleApplication2\ConsoleApplication2\g05.tif
?????文件?????922836??2007-06-16?00:26??ConsoleApplication2\ConsoleApplication2\g06.tif
?????文件??????66616??2000-07-25?11:21??ConsoleApplication2\ConsoleApplication2\g07.bmp
?????文件??????65915??2001-01-15?17:24??ConsoleApplication2\ConsoleApplication2\g08.tif
?????文件?????430068??2000-12-26?23:19??ConsoleApplication2\ConsoleApplication2\g09.tif
?????文件?????360678??2006-05-29?15:11??ConsoleApplication2\ConsoleApplication2\g10.tif
?????文件?????149371??2001-01-26?01:26??ConsoleApplication2\ConsoleApplication2\g11.tif
?????文件?????236778??2005-07-19?15:40??ConsoleApplication2\ConsoleApplication2\g12.tif
?????文件?????302874??2005-12-08?23:59??ConsoleApplication2\ConsoleApplication2\g13.tif
?????文件?????283742??2006-01-12?23:53??ConsoleApplication2\ConsoleApplication2\g14.tif
?????文件???????2474??2018-12-27?20:08??ConsoleApplication2\ConsoleApplication2\x64\Debug\ConsoleA.A78C0389.tlog\CL.command.1.tlog
?????文件??????43770??2018-12-27?20:08??ConsoleApplication2\ConsoleApplication2\x64\Debug\ConsoleA.A78C0389.tlog\CL.read.1.tlog
?????文件????????632??2018-12-27?20:08??ConsoleApplication2\ConsoleApplication2\x64\Debug\ConsoleA.A78C0389.tlog\CL.write.1.tlog
?????文件????????206??2018-12-27?20:08??ConsoleApplication2\ConsoleApplication2\x64\Debug\ConsoleA.A78C0389.tlog\ConsoleApplication2.lastbuildstate
............此處省略30個文件信息
- 上一篇:opencv和C++版相機標定
- 下一篇:c語言+貪吃蛇+實驗報告+ppt
評論
共有 條評論