1. 參考文獻
2. 算法實現
% 參考文獻: 多尺度top-hat 變換提取細節的對比度增強算法
% 作者: 劉豔莉, 桂志國
% http://www.docin.com/p-1457027092.html
% Author: HSW
% Date: 2018-04-25
%
clc;
close all;
clear all;
% img = imread('lena.jpg');
img = imread('rice.png');
figure(1);
imshow(img, []);
title('原始圖像');
if size(img, 3) == 3
img_in = rgb2gray(img);
else
img_in = img;
end
img_in = im2double(img_in);
N = 3; %多尺度的個數
% 創建多尺度亮top-hat變換:WTHs 用於提取亮細節特徵
% 創建多尺度暗top-hat變換: BTHs 用於提取暗細節特徵
% 尺度由小到大
SEsSize = [3, 5, 7];
SEs = cell(1, N);
for i = 1:N
SEs{i} = strel('disk', SEsSize(i));
end
% WTHs 和 BTHs
WTHs = cell(1, N);
BTHs = cell(1, N);
sum = 0;
for i = 1:N
WTHs{i} = img_in - imopen(img_in, SEs{i}); % imtophat(img_in, SEs{i});
BTHs{i} = imclose(img_in, SEs{i}) - img_in; % imbothat(img_in, SEs{i});
sum = sum + i;
end
% 尺度相關歸一化因子係數: lambda(i) = (N - i + 1) / sum
% 細節增強增益控制係數:k
k = 0.5;
tmp = 1:N;
lambda = (N - tmp + 1) / sum;
img_out1 = img_in;
for i = 1:N
img_out1 = img_out1 + k * lambda(i) * (WTHs{i} - BTHs{i});
end
figure(2);
imshow(img_out1, []);
title('多尺度形態學圖像增強結果');
% 論文形態學圖像增強
Dops = cell(1, N);
Dcls = cell(1, N);
for i = 1:N
if i == 1
Dops{i} = WTHs{i};
Dcls{i} = BTHs{i};
else
Dops{i} = WTHs{i-1} - WTHs{i};
Dcls{i} = BTHs{i} - BTHs{i-1};
end
end
% 等比例控制因子:lambdai = 1 / N
% 細節增強增益控制係數:k
k = 0.5;
img_out2 = img_in;
for i = 1:N
img_out2 = img_out2 + k * ( 1.0 / N * (Dops{i} - Dcls{i}));
end
figure(3);
imshow(img_out2, []);
title('等比例形態學圖像增強結果');
% 基於梯度自適應調整的控制因子: lambda
% 梯度響應控制參數:sigma
sigma = 1.5;
g = cell(1, N);
g_max = zeros(1, N);
g_min = zeros(1, N);
for i = 1:N
g{i} = imdilate(img_in, SEs{i}) - imerode(img_in, SEs{i}); % 形態學梯度: 膨脹 - 腐蝕
g_max(i) = max(max(g{i}));
g_min(i) = min(min(g{i}));
end
lambda = cell(1, N);
for i = 1:N
tmp = g{i} - (g_max(i) + g_min(i)) / 2;
lambda{i} = 1 ./ (1 + exp(-sigma .* tmp));
end
% 歸一化lambda係數
lambdaNormal = cell(1,N);
tmp = zeros(size(lambda{i}));
for j = 1:N
tmp = tmp + lambda{i};
end
for i = 1:N
lambdaNormal{i} = lambda{i} ./ tmp;
end
img_out3 = img_in;
for i = 1:N
img_out3 = img_out3 + k * (lambdaNormal{i} .* (Dops{i} - Dcls{i}));
end
figure(4)
imshow(img_out3, []);
title('自適應形態學圖像增強');
3. 模型效果(代碼默認參數不一定是最優,視覺上的圖像有增強的效果)