實驗內容
實現線性對比度展寬算法
實驗過程
讀入圖像到矩陣F
得到F的行列數與顏色通道數:m,n,c
如果顏色通道數c>1,則將彩色圖像轉化爲灰度圖rgb2gray
初始化輸出矩陣G
對於G的每一行i
對於G的每一列j
根據公式(教材P36),由F(i,j)計算G(i,j)
測試代碼
fa = 5;fb = 30;
ga = 80;gb = 100;
ImPath='.\im\pict1.png';
J=ContrastWidening(ImPath,fa,fb,ga,gb);
figure,imshow(ImPath);
figure,imshow(J);
實驗所需圖片
鏈接:https://pan.baidu.com/s/1LaxnZdLeY3LnKKv276E0pA
提取碼:vk8y
實驗源碼
function J=ContrastWidening(ImPath,fa,fb,ga,gb)
x = imread(ImPath); %讀取圖像到矩陣I
[m,n,c] = size(x); %讀取圖像的行數和列數
if(c>1)
I=rgb2gray(x);
end
J=zeros(m,n);
I = double(I); %將I數據轉換成double類型
k1 = ga/fa; %計算比例係數k1,k2,k3
k2 = (gb-ga)/(fb-fa);
k3 = (255-gb)/(255-fb);
for i=1:m
for j=1:n
if I(i,j)<fa
J(i,j) = k1*I(i,j);
elseif I(i,j)<fb
J(i,j) = k2*(I(i,j)-fa)+ga;
else
J(i,j) = k3*(I(i,j)-fb)+gb;
end
end
end
J = uint8(J); %轉換uint8編碼
end
實驗結果
學如逆水行舟,不進則退