資源簡介
自己編寫的多種去噪方式對比,主要針對椒鹽噪聲做示例,實現了一種高水平論文中的去噪方法,利用ostu算法尋找閾值,基于閾值分割進行降噪
代碼片段和文件信息
#include????
#include???
#include?
#include?
#include?
using?namespace?cv;
using?namespace?std;
//***************Otsu算法通過求類間方差極大值求自適應閾值******************??
int?OtsuAlgThreshold(const?Mat?image);
Mat?addSaltNoise(Mat?srcImage?int?n);//添加椒鹽噪聲
Mat?medianBlurdenoise(Mat?img?int?n);//中值濾波(n*n濾波)
double?getPSNR(const?Mat&?I1?const?Mat&?I2);//得到圖像的峰值信噪比(PSNR)
double?Nc(IplImage*?src?IplImage*?key);//NC指標
int*?OTSU_img_PART(Mat?img?int?A?int?B);//求范圍內的OSTU
uchar?Median(uchar?n1?uchar?n2?uchar?n3?uchar?n4?uchar?n5
uchar?n6?uchar?n7?uchar?n8?uchar?n9);//取中值函數
void?MedianFlitering(const?Mat?&src?Mat?&dst?int?down?int?up);//有范圍的中值濾波
Mat?fiter_around(Mat?src);//對一周進行濾波替換
int?main(int?argc?char?*argv[])
{
Mat?src?=?imread(“12.png“);
Mat?dstend_image;
//imshow(“SoureImage“?src);
cvtColor(srcdst?CV_RGB2GRAY);
//imshow(“gray_image“?dst);
Mat?Salt_img?=?addSaltNoise(dst3000);
imshow(“Salt_img“?Salt_img);
int?*value_down?=?OTSU_img_PART(Salt_img?0?50);
cout?<“OTSU_[050]:“?< cout?<“x_down:“?<
int?*value_Top?=?OTSU_img_PART(Salt_img?200?255);
cout?<“OTSU_[200255]:“?< cout?<“x_top:“?<
double?D?T;
double?w?=?0.2;
D?=?value_down[0]?*?w?+?value_down[2]?*?(1?-?w);
T?=?value_Top[0]?*?w?+?value_Top[1]?*?(1?-?w);
cout?<“閾值D:“?< cout?<“閾值T:“?<
MedianFlitering(Salt_img?end_image?(int)D(int)T);
Mat?finalimage?=?fiter_around(end_image);
imshow(“final_image“finalimage);
//imshow(“end_image“?end_image);
//Mat?image=addSaltNoise(src?9000);
//imshow(“noiseimage“?image);
//double?maxpsnr?=?getPSNR(src?image);
//cout?<“噪聲峰值信噪比為:?“?<
Mat?median_img3?=?medianBlurdenoise(Salt_img?3);
//imshow(“中值濾波3“?median_img3);
double?median_psnr3?=?getPSNR(dst?median_img3);
cout?<“3*3中值濾波后峰值信噪比為:“?<
Mat?median_img5?=?medianBlurdenoise(Salt_img?5);
//imshow(“中值濾波5“?median_img5);
double?median_psnr5?=?getPSNR(dst?median_img5);
cout?<“5*5中值濾波后峰值信噪比為:“?<
Mat?median_img7?=?medianBlurdenoise(Salt_img?7);
//imshow(“中值濾波7“?median_img7);
double?median_psnr7?=?getPSNR(dst?median_img7);
cout?<“7*7中值濾波后峰值信噪比為:“?<
double?final_psnr?=?getPSNR(dst?end_image);
cout?<“OTSU峰值信噪比為:“?<
double?final_psnr2?=?getPSNR(dst?finalimage);
cout?<“OTSU2峰值信噪比為:“?< //Mat?imageOutput;
//Mat?imageOtsu;
//int?thresholdValue?=?OtsuAlgThreshold(dst);
//cout?<“類間方差為:?“?< //threshold(dst?imageOutput?thresholdValue?255?CV_THRESH_BINARY);
//threshold(dst?imageOtsu?0?255?CV_THRESH_OTSU);?//Opencv?Otsu算法??
//////imshow(“SoureImage“image);??
//imshow(“Output?Image“?imageOutput
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-11-30?08:28??Image?Denoising\
?????文件??????616791??2017-11-13?23:19??Image?Denoising\12.png
?????文件??????322615??2017-11-30?00:15??Image?Denoising\30000salt.png
?????文件??????203345??2017-11-30?00:16??Image?Denoising\30000salt_3fiter.png
?????文件??????155787??2017-11-30?00:16??Image?Denoising\30000salt_5fiter.png
?????文件??????133220??2017-11-30?00:17??Image?Denoising\30000salt_7fiter.png
?????目錄???????????0??2017-11-30?08:28??Image?Denoising\Debug\
?????文件??????104960??2017-11-30?23:03??Image?Denoising\Debug\Image?Denoising.exe
?????文件??????717320??2017-11-30?23:03??Image?Denoising\Debug\Image?Denoising.ilk
?????文件?????2355200??2017-11-30?23:03??Image?Denoising\Debug\Image?Denoising.pdb
?????目錄???????????0??2017-11-30?08:28??Image?Denoising\Image?Denoising\
?????文件??????616791??2017-11-13?23:19??Image?Denoising\Image?Denoising\12.png
?????文件???????55319??2017-10-29?21:03??Image?Denoising\Image?Denoising\123.jpg
?????目錄???????????0??2017-11-30?08:28??Image?Denoising\Image?Denoising\Debug\
?????文件????????2409??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\Image?Denoising.log
?????目錄???????????0??2017-11-30?08:28??Image?Denoising\Image?Denoising\Debug\Image?Denoising.tlog\
?????文件???????55560??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\Image?Denoising.tlog\CL.read.1.tlog
?????文件?????????664??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\Image?Denoising.tlog\CL.write.1.tlog
?????文件?????????191??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\Image?Denoising.tlog\Image?Denoising.lastbuildstate
?????文件????????2260??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\Image?Denoising.tlog\cl.command.1.tlog
?????文件????????6456??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\Image?Denoising.tlog\li
?????文件????????5570??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\Image?Denoising.tlog\li
?????文件?????????620??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\Image?Denoising.tlog\li
?????文件??????330610??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\image_denoising.obj
?????文件??????879616??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\vc120.idb
?????文件?????1363968??2017-11-30?23:03??Image?Denoising\Image?Denoising\Debug\vc120.pdb
?????文件????????4798??2017-11-13?23:11??Image?Denoising\Image?Denoising\Image?Denoising.vcxproj
?????文件?????????956??2017-11-13?23:11??Image?Denoising\Image?Denoising\Image?Denoising.vcxproj.filters
?????文件???????12888??2017-11-30?23:23??Image?Denoising\Image?Denoising\image_denoising.cpp
?????文件????13369344??2017-11-30?23:23??Image?Denoising\Image?Denoising.sdf
?????文件?????????991??2017-11-13?23:05??Image?Denoising\Image?Denoising.sln
............此處省略17個文件信息
評論
共有 條評論