matlab練習程式(表面模糊)

2022-06-12 14:33:10 字數 1694 閱讀 4821

關於表面模糊的文章我是搜遍網際網路只找到下面這兩篇:

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.直到遍歷完佇列中所有資料,將這些資料記為一...