![](/user_photo/71224_AGCDL.jpg)
Добавил:
KaFaka
t.me
Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:LR5 / LR5_1
.m I=imread('image.jpg');
figure('Name','Исходное изображение');
imshow(I);
figure('Name','Гистограмма исходного изображения');
imhist(rgb2gray(I));
% 1) функция HISTEQ:
h=64; % количество столбцов желаемой гистограммы
% 1.1) простейший вариант применения:
% J1 = histeq(I,h);
% 1.2) вариант с выделением матрицы яркости:
I_hsv = rgb2hsv(I); % перевод в цветовое пр-во HSV
J_hsv = I_hsv; % подготавливаем данные вых. изображения
V = I_hsv(:,:,3); % выделение матрицы яркости
V_out = histeq(V,h); % эквализация гистограммы
J_hsv(:,:,3) = V_out; % изменяем матрицу яркости
J1 = im2uint8(hsv2rgb(J_hsv)); % формируем изображение
figure('Name','Изображение после эквализации (HISTEQ)');
imshow(J1);
figure('Name','Гистограмма после эквализации (HISTEQ)');
imhist(im2uint8(V_out));
imwrite(J1, 'output_image1.jpg')
% 2) функция IMADJUST:
MinMaxValues = stretchlim(I);
J2 = imadjust(I,MinMaxValues,[]);
figure('Name','Линейно-контрастированное изображение');
imshow(J2);
figure('Name','Гистограмма после IMADJUST');
imhist(J2);
imwrite(J2, 'output_image2.jpg')
% 3) функция ADAPTHISTEQ:
% у функции есть особенность: исходные данные д.б. от 0 до 1
LAB = rgb2lab(I);
L = LAB(:,:,1)/100; % нормировка под диапазон от 0 до 1
L = adapthisteq(L,'ClipLimit',0.02,'Distribution','rayleigh');
LAB(:,:,1) = L*100; % денормировка
J3 = lab2rgb(LAB); % обратное преобразование в изображение
figure('Name','adapthisteq_Image');
imshow(J3);
figure('Name','histogram_adapthisteq_Image');
imhist(uint8(L.*255)); % построение гистограммы
imwrite(J3, 'output_image3.jpg');
figure('Name','Исходное изображение');
imshow(I);
figure('Name','Гистограмма исходного изображения');
imhist(rgb2gray(I));
% 1) функция HISTEQ:
h=64; % количество столбцов желаемой гистограммы
% 1.1) простейший вариант применения:
% J1 = histeq(I,h);
% 1.2) вариант с выделением матрицы яркости:
I_hsv = rgb2hsv(I); % перевод в цветовое пр-во HSV
J_hsv = I_hsv; % подготавливаем данные вых. изображения
V = I_hsv(:,:,3); % выделение матрицы яркости
V_out = histeq(V,h); % эквализация гистограммы
J_hsv(:,:,3) = V_out; % изменяем матрицу яркости
J1 = im2uint8(hsv2rgb(J_hsv)); % формируем изображение
figure('Name','Изображение после эквализации (HISTEQ)');
imshow(J1);
figure('Name','Гистограмма после эквализации (HISTEQ)');
imhist(im2uint8(V_out));
imwrite(J1, 'output_image1.jpg')
% 2) функция IMADJUST:
MinMaxValues = stretchlim(I);
J2 = imadjust(I,MinMaxValues,[]);
figure('Name','Линейно-контрастированное изображение');
imshow(J2);
figure('Name','Гистограмма после IMADJUST');
imhist(J2);
imwrite(J2, 'output_image2.jpg')
% 3) функция ADAPTHISTEQ:
% у функции есть особенность: исходные данные д.б. от 0 до 1
LAB = rgb2lab(I);
L = LAB(:,:,1)/100; % нормировка под диапазон от 0 до 1
L = adapthisteq(L,'ClipLimit',0.02,'Distribution','rayleigh');
LAB(:,:,1) = L*100; % денормировка
J3 = lab2rgb(LAB); % обратное преобразование в изображение
figure('Name','adapthisteq_Image');
imshow(J3);
figure('Name','histogram_adapthisteq_Image');
imhist(uint8(L.*255)); % построение гистограммы
imwrite(J3, 'output_image3.jpg');