У меня возникли проблемы с пониманием того, как изменить цветовой код изображения GIF в градациях серого после выполнения выравнивания гистограммы на изображении. Процесс совершенно прост с типами сжатия изображений, которые не имеют ассоциированной цветовой карты, например JPEG, и я получил ее для работы с изображениями в градациях серого.MATLAB Уравнивание гистограммы на изображениях GIF
clear
clc
[I,map] = imread('moon.gif');
h = zeros(256,1); %array value holds number of pixels with same value
hmap = zeros(256,1);
P = zeros(256,1); %probability that pixel intensity will appear in image
Pmap = zeros(256,1);
s = zeros(256,1); %calculated CDF using P
smap = zeros(256,1);
M = size(I,1);
N = size(I,2);
I = double(I);
Inew = double(zeros(M,N));
mapnew = zeros(256,3);
for x = 1:M;
for y = 1:N;
for l = 1:256;
%count pixel intensities and probability
end
end
end
for j = 2:256
for i = 2:j
%calculate CDF of P
end
end
s(1) = P(1);
smap(1) = Pmap(1);
for x = 1:M;
for y = 1:N;
for l = 1:256;
%calculates adjusted CDF and sets it to new image
end
end
end
mapnew = mapnew/256;
Inew = uint8(Inew);
I = uint8(I);
subplot(1,2,1), imshow(Inew,map); %comparing the difference between original map
subplot(1,2,2), imshow(Inew,mapnew); %to'enhanced' colormap, but both turn out poorly
Все это хорошо с точки зрения выравнивания фактического изображения, но я не уверен, что изменить в цветовой карте. Я попытался выполнить те же операции в цветовой палитре, что и я, с изображением, но не кубиками.
Извините, что я не могу отправить изображения из-за моей низкой репутации, но я постараюсь предоставить всю информацию, которую я могу по запросу.
Любая помощь была бы принята с благодарностью.
Предложение: вы можете загружать изображения на [imgur] (http://imgur.com/) и размещать ссылки. Более привилегированный пользователь может включить их в ваш вопрос для вас, пока вы не приобретете репутацию, чтобы сделать это сами ... и добро пожаловать в SO! –
, если вы работаете с обычными изображениями (оттенки серого или truecolor), вы всегда можете использовать 'ind2gray' или' ind2rgb' для преобразования изображения и соответствующей цветовой карты в первый вид, а затем выполнить свою процедуру. fwiw MATLAB уже имеет функцию 'histeq', которая работает на всех типах изображений. – Amro
Спасибо за помощь y'all! Функция ind2gray работает как очарование. Это было присвоение класса, поэтому histeq не могло быть и речи, за исключением того, чтобы убедиться, что ваш код работает. Я также буду иметь в виду использовать imgur для предоставления изображений. Еще раз, спасибо за помощь. –