1 簡介
為了實作對圖像的降噪,兼顧全局整體增強和局部細節增強,首先定義輸入圖像的對比度度量模型和亮度度量模型,然後構造标量權重映射,并進行歸一化處理,接着綜合利用高斯金字塔和拉普拉斯金字塔,制定融合規則,利用融合金字塔重構圖像,實作圖像增強。
2 部分代碼
% 對圖像進行灰階世界白平衡處理
% 再進行直方圖自動對比度調整
function output = simple_color_balance(image)
num = 255;
r = image(:, :, 1);
g = image(:, :, 2);
b = image(:, :, 3);
Ravg = mean(mean(r));
Gavg = mean(mean(g));
Bavg = mean(mean(b));
avgRGB = [Ravg, Gavg, Bavg];
grayValue = (Ravg + Gavg + Bavg)/3;
scaleValue = grayValue./avgRGB;
% newI(:,:,1) = scaleValue(1) * r;
% newI(:,:,2) = scaleValue(2) * g;
% newI(:,:,3) = scaleValue(3) * b;
%
% figure,imshow(newI);
satLevel = 0.001 * scaleValue;
[m,n,p] = size(image);
imgRGB_orig = zeros(p, m*n);
for i = 1 : p
imgRGB_orig(i, : ) = reshape(double(image(:, :, i)), [1, m * n]);
end
imRGB = zeros(size(imgRGB_orig));
%直方圖對比度調整
for ch = 1 : p
q = [satLevel(ch), 1 - satLevel(ch)];
tiles = quantile(imgRGB_orig(ch, :), q);
temp = imgRGB_orig(ch, :);
temp(find(temp < tiles(1))) = tiles(1);
temp(find(temp > tiles(2))) = tiles(2);
imRGB(ch, :) = temp;
pmin = min(imRGB(ch, :));
pmax = max(imRGB(ch, :));
% fac(A) = Amin + (A - Alow) * (Amax -Amin)/(Ahigh - Alow)
% 對于8bit圖像,Amin = 0,Amax = 255
imRGB(ch, :) = (imRGB(ch, :) - pmin) * num /(pmax - pmin);
end
output = zeros(size(image));
for i = 1 : p
output(:, :, i) = reshape(imRGB(i, :), [m, n]);
end
output = uint8(output);
end
3 仿真結果
4 參考文獻
[1]馬永強, 王順利, 孫偉,等. 基于高斯金字塔和拉普拉斯金字塔融合的圖像對比度增強算法研究[J]. 資訊與電腦, 2018(4):3.