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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

灰度图像--图像增强 非锐化掩蔽 (Unsharpening Mask) .

發布時間:2025/3/21 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 灰度图像--图像增强 非锐化掩蔽 (Unsharpening Mask) . 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

灰度圖像--圖像增強 非銳化掩蔽 (Unsharpening Mask)

分類: 數字圖像處理 岡薩雷斯 147人閱讀 評論(0) 收藏 舉報 圖像增強圖像處理非銳化掩蔽USM

目錄(?)[+]

  • 開篇廢話
  • 數學原理
  • 示意圖
  • 代碼
  • 結果
  • 總結
  • 學習DIP第35天

    轉載請標明本文出處:http://blog.csdn.net/tonyshengtan,歡迎大家轉載,發現博客被某些論壇轉載后,圖像無法正常顯示,無法正常表達本人觀點,對此表示很不滿意。有些網站轉載了我的博文,很開心的是自己寫的東西被更多人看到了,但不開心的是這段話被去掉了,也沒標明轉載來源,雖然這并沒有版權保護,但感覺還是不太好,出于尊重文章作者的勞動,轉載請標明出處!!!!

    文章代碼已托管,歡迎共同開發:https://github.com/Tony-Tan/DIPpro



    開篇廢話



    ? ? ? ?廢話開始,今天寫了兩篇博客,為了加快學習進度,而且是周末,相當于給自己加個班,而且理論之前已經研究明白了,所以寫起來也比較自如。有人在群里問,學習圖像處理,要看書還是要寫代碼還是要作項目,我覺得,看書像是內功心法,寫代碼相當于招式練習,項目就像實戰一樣,所以如果只寫代碼或者一上來就去跟別人做項目而完全不看書研究基礎算法就像空中樓閣,美麗但不牢固,更重要的是容易迷失自己,也就是走火入魔,個人觀點,本人也在基礎練習階段,所以說這些沒什么經驗依據,只是自己的理解。 ? ? ? ?非銳化掩蔽,一開始感覺這個詞好難接受,不知道要干嘛,google之發現線索不多,經過一番研究發現這個詞這么理解:非銳化--銳化的相反的操作是平滑,所以非銳化就是平滑操作;掩蔽--字面意思是隱藏,其實我們可以把它理解成為減去除去,所以這個過程就是減去平滑后的圖像得到的結果。而實際算法的思路是,原圖減去平滑后的圖像,得到被削弱的邊緣部分,然后按照一定比例和原圖相加,如果比例為1,那么就是非銳化掩蔽,如果大于1就是高提升濾波,和前面頻率域的高提升,高頻強調思路一致,只是那部分用的是頻率域方法。

    數學原理



    ? ? ? ?數學原理與前面的銳化原理基本保持一致,只是在確定細節的方法上有些不同: 1、生成模板,f上有個橫的表示f的平滑結果:
    2:鈍化模板按照一定比例與原圖相加:
    其中k=1時為非銳化掩蔽。 k>1時為高提升濾波。

    示意圖



    ? ? ? ?觀察示意圖:
    ?算法基本步驟:
  • 平滑圖像,邊緣和突變被消減,而平滑部分不變(此處不適合采用邊緣保持性好的平滑算法,代碼中使用了均值濾波和高斯濾波)。
  • 原圖像與平滑后圖像相減,得到鈍化模板。
  • 鈍化模板的k倍與原圖相加得到銳化結果。
  • ? ? ? ?值得注意的是,因為鈍化模板有負值,所以,如果k選擇過大的時候有可能圖像產生負值



    代碼



    [cpp] view plaincopyprint?
  • void?UnsharpMasking(double?*src,double?*dst,int?width,int?height,int?smooth_type,int?smooth_mask_width,int?smooth_mask_height,double?gaussian_deta,double?k){??
  • ????switch?(smooth_type)?{??
  • ????????case?SMOOTH_GAUSSIAN:??
  • ????????????GaussianFilter(src,?dst,width,height,?smooth_mask_width,?smooth_mask_height,gaussian_deta);??
  • ????????????break;??
  • ????????case?SMOOTH_MEAN:??
  • ????????????MeanFilter(src,?dst,width,height,?smooth_mask_width,?smooth_mask_height);??
  • ????????????break;??
  • ????????default:??
  • ????????????break;??
  • ????}??
  • ????matrixSub(src,?dst,?dst,?width,?height);??
  • ????matrixMultreal(dst,?dst,?k,?width,?height);??
  • ????matrixAdd(src,?dst,?dst,?width,?height);??
  • ??
  • ??
  • }??
  • void UnsharpMasking(double *src,double *dst,int width,int height,int smooth_type,int smooth_mask_width,int smooth_mask_height,double gaussian_deta,double k){switch (smooth_type) {case SMOOTH_GAUSSIAN:GaussianFilter(src, dst,width,height, smooth_mask_width, smooth_mask_height,gaussian_deta);break;case SMOOTH_MEAN:MeanFilter(src, dst,width,height, smooth_mask_width, smooth_mask_height);break;default:break;}matrixSub(src, dst, dst, width, height);matrixMultreal(dst, dst, k, width, height);matrixAdd(src, dst, dst, width, height);}



    結果



    ? ? ? ? 實驗結果,分別采用高斯濾波和均值濾波,作為平滑算法。 原圖:
    高斯濾波: 5x5,deta=1,k=1: 鈍化模板:
    銳化結果:
    5x5,deta=1,k=2:
    銳化結果:

    5x5,deta=2,k=1:
    鈍化模板:
    銳化結果:
    5x5,deta=2,k=2:
    銳化結果:

    7x7,deta=1,k=1: 鈍化模板:
    銳化結果:
    7x7,deta=1,k=2:
    銳化結果:
    7x7,deta=2,k=1:
    鈍化模板:
    銳化結果:
    7x7,deta=2,k=2: 銳化結果:

    均值 5x5,k=1: 鈍化模板:
    銳化結果:
    5x5,k=2: 銳化結果:

    7x7,k=1: 鈍化模板:
    銳化結果:
    7x7,k=2: 銳化結果:




    總結



    ? ? ? ? 觀察上面結果,發現:
  • k越大對細節增強越明顯。
  • 模板越大會導致增細節被增強的越寬,所以模板大小要適度。
  • 被平滑消除的邊緣越多,銳化后增強的越多。
  • ? ? ? ?下一篇介紹下一階微分算子 

    總結

    以上是生活随笔為你收集整理的灰度图像--图像增强 非锐化掩蔽 (Unsharpening Mask) .的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。