日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

图像降噪算法——小波硬阈值滤波(下)

發(fā)布時(shí)間:2025/3/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像降噪算法——小波硬阈值滤波(下) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

圖像降噪算法——小波硬閾值濾波(下)

  • 圖像降噪算法——小波硬閾值濾波(下)
    • 1. 基本原理
    • 2. C++代碼實(shí)現(xiàn)
    • 3. 結(jié)論

圖像降噪算法——小波硬閾值濾波(下)

1. 基本原理

關(guān)于離散小波變換的原理在

圖像降噪算法——小波硬閾值濾波(上)

中已經(jīng)有了非常詳細(xì)的總結(jié),這里介紹下本博客利用離散小波變換進(jìn)行降噪的原理(其實(shí)不能算是降噪,應(yīng)該算是圖像壓縮),就是在小波變換之后,將輸出系數(shù)進(jìn)行由大到小的排序,然后將前10%大的通過小波反變換成圖像,因?yàn)樵肼暡粚儆趫D像的主要信息,因此通過這種方法會(huì)有降噪的效果,這種算法又稱為小波硬閾值濾波。

2. C++代碼實(shí)現(xiàn)

這里是基于OpenCV、FFTW以及C++ Wavelet Libraries,這其中
(1)FFTW是一個(gè)基于C寫的實(shí)現(xiàn)傅里葉變換和小波變換的基礎(chǔ)庫(kù),鏈接戳這里,源碼安裝后用CmakeList鏈接到靜態(tài)庫(kù)文件即可。
(2)C++ Wavelet Libraries是利用FFTW封裝的一個(gè)小波變換處理圖像的庫(kù),下載鏈接戳這里,這里主要是用到了它的wavelet2d.cpp和wavelet2d.h兩個(gè)文件。
我封裝的小波變換的降噪算法如下:

Mat Denoise::WaveletFilter(const Mat &src, int num, int percentage) {//需要講Mat數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為vector數(shù)據(jù)結(jié)構(gòu)vector<vector<double>> dwtInput(src.rows, vector<double>(src.cols));for(int i = 0; i<src.rows; i++){for(int j = 0; j<src.cols; j++){dwtInput[i][j] = (double)src.at<uchar>(i,j);}}//計(jì)算小波變換,輸出結(jié)果是outputvector<int> dwtLength;vector<double> dwtOutput, dwtFlag;dwt_2d(dwtInput, num, "db2", dwtOutput, dwtFlag, dwtLength);//******************************顯示相關(guān)****************************** // //通過dwtLength計(jì)算dim // vector<int> dwtDim; // dwt_output_dim_sym(dwtLength, dwtDim, num); // // //dim的后兩位是顯示尺寸,并將dwtOutput構(gòu)造成display // int dwtRow = dwtDim[dwtDim.size()-2], dwtCol = dwtDim[dwtDim.size()-1]; // vector<vector<double>> dwtDisplay(dwtRow, vector<double>(dwtCol)); // dispDWT(dwtOutput, dwtDisplay, dwtLength, dwtDim, num); // // //獲取display中的最大值double m = 0; // for(int i = 0; i < dwtRow; i++) // { // for(int j = 0; j < dwtCol; j++) // { // if(m < dwtDisplay[i][j]) // m = dwtDisplay[i][j]; // } // } // // //dst是用于顯示的圖像 // Mat dst = Mat::zeros(dwtRow,dwtCol,CV_8UC1); // for(int i = 0; i < dwtRow; i++) // { // for(int j = 0; j < dwtCol; j++) // { // if(dwtDisplay[i][j] <= 0.0) // dwtDisplay[i][j] = 0.0; // if(i<=dwtDim[0] && j<=dwtDim[1]) // dst.at<uchar>(i,j) = (uchar)(dwtDisplay[i][j]/m*255); // else // dst.at<uchar>(i,j) = (uchar)(dwtDisplay[i][j]); // } // } // imshow("dst", dst);//******************************************************************//******************************濾波相關(guān)******************************//開始濾波int filterSize = int(dwtOutput.size() / percentage);vector<double> filter;for(auto it : dwtOutput){filter.push_back(abs(it));}sort(filter.begin(), filter.end(), greater<double>());double threshold = filter.at(filterSize-1);for(int i = 0; i<dwtOutput.size(); i++){double tmp = abs(dwtOutput[i]);if(tmp < threshold)dwtOutput.at(i) = 0.0;}//******************************************************************//******************************顯示相關(guān)****************************** // dispDWT(dwtOutput, dwtDisplay, dwtLength, dwtDim, num); // // //獲取display中的最大值 // m = 0; // for(int i = 0; i < dwtRow; i++) // { // for(int j = 0; j < dwtCol; j++) // { // if(m < dwtDisplay[i][j]) // m = dwtDisplay[i][j]; // } // } // // //dst是用于顯示的圖像 // Mat dst2 = Mat::zeros(dwtRow,dwtCol,CV_8UC1); // for(int i = 0; i < dwtRow; i++) // { // for(int j = 0; j < dwtCol; j++) // { // if(dwtDisplay[i][j] <= 0.0) // dwtDisplay[i][j] = 0.0; // if(i<=dwtDim[0] && j<=dwtDim[1]) // dst2.at<uchar>(i,j) = (uchar)(dwtDisplay[i][j]/m*255); // else // dst2.at<uchar>(i,j) = (uchar)(dwtDisplay[i][j]); // } // } // imshow("dst2", dst2);//******************************************************************//下面是進(jìn)行小波反變換過程vector<vector<double>> idwtOutput(src.rows, vector<double>(src.cols));idwt_2d(dwtOutput, dwtFlag, "db2", idwtOutput, dwtLength);int idwtRow = idwtOutput.size();int idwtCol = idwtOutput[0].size();//獲取idwtOutput中的最大值m = 0;for(int i = 0; i < idwtRow; i++){for(int j = 0; j < idwtCol; j++){if(m < idwtOutput[i][j])m = idwtOutput[i][j];}}//顯示降噪后的圖像Mat img = Mat::zeros(idwtRow, idwtCol, CV_8UC1);for(int i = 0; i<idwtRow; i++){for(int j = 0; j<idwtCol; j++){if(idwtOutput[i][j] <= 0.0){idwtOutput[i][j] = 0.0;}img.at<uchar>(i,j) = (uchar)(idwtOutput[i][j]/m*255);}}return img; }

原圖如下:

加入高斯噪聲:
進(jìn)行圖像小波變換:
按照上述方法進(jìn)行濾波:

進(jìn)行圖像小波反變換:

3. 結(jié)論

  • 可以看到通過圖像小波變換進(jìn)行降噪的效果看上去還可以,起碼比傅里葉變換的效果要好,但是呢,感覺小波變換的速度還是比較慢,實(shí)時(shí)運(yùn)行應(yīng)該比較困難;
  • 本文采用的降噪算法其實(shí)比較簡(jiǎn)單,在這篇文獻(xiàn)中《Image Denoising Review From Classical to State-of-the-art Approaches,2020》提到,對(duì)于轉(zhuǎn)換域的降噪算法主要有兩個(gè)關(guān)鍵點(diǎn):1.轉(zhuǎn)換到什么變換域(傅里葉?小波?脊波?);2.采用什么類型的閾值進(jìn)行濾波,這篇文獻(xiàn)中提到了六種設(shè)計(jì)閾值的方法,需要了解的同學(xué)可以參考下;
  • 小波變化提取信息主要是在水平、垂直和對(duì)角線三個(gè)方向,在小波的基礎(chǔ)上,還有curvelet、contourlet等一些更加高級(jí)的變化,之后有需要再進(jìn)一步了解。
  • 此外,這里我寫一個(gè)各種算法的總結(jié)目錄圖像降噪算法——圖像降噪算法總結(jié),對(duì)圖像降噪算法感興趣的同學(xué)歡迎參考

    總結(jié)

    以上是生活随笔為你收集整理的图像降噪算法——小波硬阈值滤波(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 伊人久久大香线蕉av一区 | 欧美黄色免费在线观看 | 亚洲第一免费 | 日本男人天堂网 | 亚洲午夜福利在线观看 | 美国一区二区三区 | 毛片久久久久 | 色妺妺视频网 | 999av| 成年人性生活免费视频 | 天天躁日日躁狠狠躁欧美 | 女女百合高h喷汁呻吟玩具 www.亚洲一区 | xxxxxx国产 | 日本美女黄色大片 | 日本不卡视频一区二区 | 国产v亚洲v天堂无码久久久 | 国产高清在线观看视频 | 欧美成人精精品一区二区频 | 色综合天天综合综合国产 | 欧美偷拍一区二区三区 | 欧美精品1区2区 | 中文字幕一区二区人妻电影丶 | 亚洲精品乱码久久久久久按摩观 | 日韩一区二区三区四区五区六区 | 99er视频| 成人一级影视 | 欧美色图在线观看 | 欧美性猛交xxxx黑人 | 大地资源影视在线播放观看高清视频 | 成人颜色网站 | 成人高清免费观看 | 欧美日韩一区二区综合 | 国产新婚疯狂做爰视频 | 欧美日韩中文字幕一区二区三区 | 男人综合网 | 一级黄色片免费播放 | 老头老夫妇自拍性tv | 精品自拍视频 | 韩国一区二区在线播放 | 精品国产乱码久久 | 日韩一区中文 | 日本韩国欧美一区二区 | 精产国品一二三产区m553麻豆 | 福利二区视频 | 国产让女高潮的av毛片 | 中文字幕一二区 | 国产美女无遮挡免费 | 瑟瑟在线观看 | 天天操天天插 | 少妇久久久久久被弄到高潮 | 性色av一区二区三区四区 | 久久久久久九九 | 91精品欧美一区二区三区 | 亚洲欧美综合一区 | 在线观看黄色国产 | 九九在线观看高清免费 | 亚洲精品二 | 中文字幕第一 | 九色porn| 欧洲成人精品 | 日韩视频中文字幕 | 日本一级黄色 | www狠狠操| √资源天堂中文在线视频 | 日韩av中字 | 神秘电影永久入口 | 在线欧美色 | 日韩在线www | 久久人人爽人人爽人人片av免费 | 欧美精品色哟哟 | 日本熟妇毛耸耸xxxxxx | 一本加勒比波多野结衣 | 超碰免费在线97 | 日韩无遮挡 | 久久久中文 | 亚洲熟妇无码一区二区三区 | 欧美人妻精品一区二区 | 国产传媒视频在线观看 | 午夜精品影院 | 免费看一级黄色大全 | 99热这里只有精品久久 | 日韩国产精品视频 | 精品视频一区二区三区 | 亚洲乱妇老熟女爽到高潮的片 | 中文字幕日韩高清 | h小视频在线观看 | 成人欧美一区二区三区黑人 | 最新av中文字幕 | 中国丰满老太hd | 六月丁香色婷婷 | 日本一区二区三区久久久久 | 国产在线精品视频 | 国产无码精品一区二区 | 国产精品.xx视频.xxtv | 97视频在线观看免费高清完整版在线观看 | 日韩精品久久久久久久电影99爱 | 久久婷婷五月综合 | 国产又粗又猛视频 | 中文字幕一区二区三区乱码在线 |