關於表面模糊的文章我是搜遍網際網路只找到下面這兩篇:
1.2.
第一篇原理比較清楚,不過沒有**;第二篇原理就不太清楚了,不過有**,就看各位能不能看懂彙編了。
關於表面模糊,和其他模糊不同的是,其他模糊一般整個影象只用乙個模板矩陣,而表面模糊對每乙個畫素都需要建立乙個模版矩陣,因此計算量要大很多。
解釋一下:確定模糊模板有兩引數。1.r是模板半徑,那麼整個模板矩陣就有(2*r+1)^2個畫素;2.t是閾值,確定模板中對應不同畫素有不同權重。w就是模版矩陣了。x(i,j)是當前模板選中的畫素,x(r+1,r+1)是當前模板最中間的畫素也就是當前影象選中的畫素。
也許上面的解釋讓人聽的雲裡霧裡的,不過沒關係,下面結合**就能很好的理解了。
clear all;下面是處理的效果:close all;
clc;
r=11
; %半徑
t=36
; %閾值
w=1-abs(imgn(i-r:i+r,j-r:j+r)-imgn(i,j))/(2.5*t); %這裡很關鍵
for p=1:2*r+1
for q=1:2*r+1
if w(p,q) <=0
w(p,q)=0
;
endend
ends=w.*imgn(i-r:i+r,j-r:j+r); %下面是普通的加權平均
imgn(i,j)=sum(sum(s))/sum(sum(w));
endend
figure;
img=imgn(r+1:m+r,r+1:n+r);
imshow(mat2gray(img));
原圖
這裡處理的效果
photoshop中把半徑設為11,閾值設為36處理的效果
整體灰度雖然稍有不同,不過整體灰度嘛,呵呵,在matlab中加個mat2gray()就都一樣了嘛。
matlab練習程式(毛玻璃模糊)
算是一種特效模糊方式吧,演算法原理就是用鄰域隨機畫素代替當前所處理的畫素就可以了。效果如下圖所示 原圖 處理後結果 matlab 如下 n 3 模糊直徑 for i 1 h for j 1 w offsetx n rand n 2 鄰域隨機值代替當前畫素 offsety n rand n 2 y f...
matlab練習程式(徑向模糊1)
注 新方法移步這裡 之所以要加1是因為這個還沒有做完,這個只是按照自己的想法實現的,結果。果然是不行啊。photoshop中的徑向模糊演算法我也不清楚,不過下面的對話方塊大致可以讓人猜到一些 看那個小方框就可以了,我感覺是photoshop只在黑色畫素對應的地方進行模糊,其他的地方則不處理。我暫時只...
matlab練習程式(DBSCAN)
和kmeans相比,不需要事先知道資料的類數。以程式設計的角度來考慮,具體演算法流程如下 1.首先選擇乙個待處理資料。2.尋找和待處理資料距離在設定半徑內的資料。3.將找到的半徑內的資料放到乙個佇列中。4.拿佇列頭資料作為當前待處理資料並不斷執行第2步。5.直到遍歷完佇列中所有資料,將這些資料記為一...