借用一張lena小姐的圖
題外話 lena小姐的全圖真的 ***
可以看出美顏效果還是明顯的,下面進行過程實現
保留邊界細節,模糊變化不明顯的區域
我們知道高斯濾波器可以起到模糊影象的作用,而上述的過程是選擇性地進行模糊,在這裡是對影象的灰度變化進行乙個判斷,達到模糊該模糊的地方,並保留邊緣的細節
這裡可以推斷,我們需要乙個高斯濾波器和乙個反映灰度判斷的矩陣,來處理高斯濾波器各個位置的權重。
獲取
設計濾波器img0 = imread(
%控制高斯濾波器大小的引數
sigma1 =3;
%控制高斯濾波器的標準差
sigma2 =
0.04
;%控制灰度的敏感性,越大的灰度差,權重越小
%模板補零,便於卷積操作,不然會使得區域出現黑邊
img = double(padarray(img0,
[tempsize,tempsize],0
))/255
;%色彩通道提取
imgr = img(:,
:,1)
;imgg = img(:,
:,2)
;imgb = img(:,
:,3)
;
使用濾波器依次處理三個色彩通道function out = b_filter(img,tempsize,sigma0,sigma1)
%高斯濾波器模板定義
gauss = fspecial(
'gauss',2
*tempsize+
1,sigma0)
;[m,n]
= size(img)
;for i =
1+ tempsize : m - tempsize
for j =
1+ tempsize : n - tempsize
% 提取處理區域得到梯度敏感矩陣
% img(i - tempsize:i + tempsize,j - tempsize:j + tempsize)
% 為卷積區域,img(i,j)
)為卷積中心點
% 得到灰度差值矩陣,並用高斯函式處理為灰度差越大則最終數值越小的權重矩陣
temp =
abs(img(i - tempsize:i + tempsize,j - tempsize:j + tempsize)
- img(i,j));
temp = exp(
-temp.^2
/(2*sigma1^2)
);%將權重矩陣與高斯濾波器相乘,得到雙邊濾波器,並將權值和化為一
filter
= gauss.
*temp;
filter
=filter
/sum
(filter(:
));% 卷積求和
img(i,j)
=sum
(sum
((img(i - tempsize:i + tempsize,j - tempsize:j + tempsize).*
filter))
);end
end
out = img;
end
最終顯示
figure(1)
subplot(
121)
imshow(img0)
subplot(
122)
% 只顯示彩色區域,去除黑邊
磨皮美顏用在lena小姐上效果還是不是太明顯,換一張圖
NDK 開發實戰 實現相機美顏功能
在 圖形影象處理 實現的美容效果 一文中提到了的美容,採用雙邊濾波演算法來實現,具體的演算法流程和實現思路,大家可以在上篇文章中了解,這篇文章就在不再反覆囉嗦了。這裡我們再次來看下處理效果 上面的效果看似好像不錯,其實存在了大量的問題。從處理速度上來說,雙邊模糊演算法是在二維的高斯函式上新增畫素差值...
matlab使用神經網路實現分類功能
實驗步驟 通過load進倆個資料集,手動打標籤,混合後按三七比例分訓練集和測試集,訓練集上訓練出神經網路模型後,在測試集上驗證,計算錯誤率。load c users administrator desktop rc 載入資料 load c users administrator desktop rc...
Matlab 實現對碼功能
1 什麼叫對碼?舉例說明,資料庫中有兩張表。表 1 編號 描述 11兒科門診 22 門診 33 產科門診 表 2 編號 描述 111兒科門診 222 門診 333 產科門診 現在要在表 1 和表 2 之間找到一一對應。比如 編號1 編號2 11111 22222 33333 這就是對碼。是不是很簡單...