matlab实现同态滤波
生活随笔
收集整理的這篇文章主要介紹了
matlab实现同态滤波
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
?
???????????????? ?????????????????????????? 同態(tài)濾波的原理框圖
?
matlab代碼:
clear,clc;Img = imread('tape.png'); L = size(Img); % 計算圖像大小 if numel(L)>2 %判斷圖像是否是彩色圖像gray = rgb2gray(Img); % 圖像灰度變換 elsegray = Img; endgray = double(gray); [M, N] = size(gray); rL = 0.5; % 高頻增益 rH = 0.8; % 低頻增益 c = 0.5; % 調(diào)節(jié)濾波器函數(shù)的斜面的銳化系數(shù) D0 = 50; % 截止頻率 n = 1; % 濾波器的階數(shù) I1 = log(gray + 1); F1 = fft2(I1); H1 = zeros(M,N); n1 = floor(M/2); n2 = floor(N/2); for i = 1:Mfor j = 1:ND(i,j) = sqrt(( (i-n1).^2 + (j-n2).^2));A = rH - rL;B = power( D(i,j)/D0, 2*n);C = 1 - exp(-c*B);H1 = A * C + rL;end endI2 = ifft2(H1.*F1); I3 = real(exp(I2)); I3 = Img_normal(I3); IH1 = uint8(I3*256);figure(1); subplot(121); imshow(gray,[]); title('原始圖像'); subplot(122); imshow(IH1,[]); title('濾波后圖像'); function temp = Img_normal(Img) %% 參考資料:http://webdataanalysis.net/data-analysis-method/data-normalization/ %% 函數(shù)功能:歸一化輸入圖像 % 輸出為【0,1】之間的double數(shù)據(jù) Img = round(Img); % 將圖像四舍五入為整數(shù) Img_max = max(max(Img)); Img_min = min(min(Img)); [row, col] = size(Img); temp = zeros(row, col); for i = 1:rowfor j = 1:coltemp(i,j) = double((Img(i,j) - Img_min)/(Img_max - Img_min));end endend?
總結(jié)
以上是生活随笔為你收集整理的matlab实现同态滤波的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简历,面试
- 下一篇: 15.使用using和try/final