adjusts the intensity of the image

조회 수: 3 (최근 30일)
elena rondina
elena rondina 2016년 1월 29일
편집: elena rondina 2016년 1월 29일
hi recently i'm studying matlab...i have to adjusts the intensity of the image whit n transformed with different intensity range(>1 and <1)and show their histogram.don't undestand the solution; the code is:
function InspectImadjust(img,tol, n)
img_gray=rgb2gray(img)
if nargin<3
n = 3;
end
if nargin<2
tol = 0.05;
end
figure;
subplot(n+1,2,1);
imshow(img_gray);
title('Immagine a Livelli di grigio');
subplot(n+1,2,2);
imhist(img_gray);
title('istogramma ORIG');
xlabel('l.d.g.');
ylabel('#pixels');
%%CONTRAST STRETCHING
%Sintassi generale: J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma)
step = 1/n;
gammaMin = [];
for i=1:floor(n/2) %%da 1 fino a 1
gammaMin = [1-(i*step)];
end
gammaMin = fliplr(gammaMin);
gammaMax = [];
for i=1:floor(n/2)
gammaMax = [1+(i*step)];
end
gamma = [gammaMin 1 gammaMax];
i = 3;
for g = gamma
img_CS = imadjust(img_gray, stretchlim(img_gray, tol), [], g);
subplot(n+1,2,i);
imshow(img_CS)
title(['tol: ' num2str(tol) '. gamma: ' num2str(g)]);
subplot(n+1,2,i+1);
imhist(img_CS);
i = i + 2;
end
end
why the code use step = 1/n?why estimate gammaMin = [1-(i*step)] and gammaMax = [1+(i*step)]?

답변 (0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by