1 Что такое гамма-коррекция изображения?
Гамма-коррекция изображения — это метод регулировки контрастности и яркости изображения. Он использует функцию степенного закона для настройки распределения уровней серого изображения для изменения эффекта отображения изображения.
При гамма-коррекции для преобразования значений пикселей изображения используется степенная функция. Общий вид степенной функции следующий: V_out = A * V_in^gamma, где V_in — значение пикселя входного изображения, V_out — значение пикселя выходного изображения, гамма — параметр настройки, а A — нормализация. коэффициент.
Изменяя значение гаммы, можно регулировать контрастность и яркость изображения. Если значение гаммы больше 1, контрастность областей с высоким уровнем серого будет повышена; если значение гаммы меньше 1, контрастность областей с низким уровнем серого будет повышена. Этот метод можно использовать для коррекции нелинейного отклика самого изображения, а также нелинейного отклика устройства отображения, тем самым улучшая визуальное качество изображения.
На практике гамма-коррекция изображения широко используется в области цифровой обработки изображений и фотографии для улучшения деталей изображения и улучшения визуальных эффектов изображений.
Гамма-коррекция имеет множество практических применений, включая, помимо прочего, следующие аспекты:
В целом, гамма-коррекция — это очень важный этап цифровой обработки изображений, который может помочь улучшить качество изображения и обеспечить единообразие эффекта отображения изображения на разных устройствах.
2 гамма-коррекция Matlab
close all
clear all
clc
% прочитать изображение
in = imread('1.bmp');
img=rgb2gray(in);
[a,b,c]= size(img);
% Определить значение гаммы
gamma = 2;
adjusted_img = imadjust(img, [], [], gamma);
%result = power(x, n);
%c — константа, и r также является константой (0,04–25,0 и т. д.).
% c=1;
% x=0:255;
% s=power(x,gamma)./255;
% figure(1),
% plot(s);
c=1/(power(255,gamma)/255);
new = zeros(a, b);
img=double(img);
for i=1:a
for j=1:b
x=img(i,j);
y=power(img(i,j),gamma);
new(i,j)=fix(y*c);
end
end
new=uint8(new);
% гамма-коррекция
img=uint8(img);
% Показать исходное изображение и изображение после коррекции
figure(2),
subplot(1,3,1), imshow(img), title('исходное изображение');
subplot(1,3,2), imshow(adjusted_img), title('изображение после коррекции');
subplot(1,3,3), imshow(new), title('изображение после коррекции');
3 FPGA реализует гамма-коррекцию
По сравнению с исправленным изображением в оттенках серого, контрастность изображения значительно изменилась.