¡Buscando algoritmo y código fuente! ! ! Utilice Matlab para programar una cuantificación no uniforme de imágenes.
La ecualización de histograma también es un tipo de cuantificación no lineal. La encontré en línea y el autor la escribió con gran detalle.
% Funcionamiento del programa de procesamiento de imágenes digitales
% Este programa puede escalar grises archivos de imágenes en color en formato JPG y realizar ecualización de histograma
%
% Archivo de entrada: imagen PicSample.jpg a procesar
% Archivo de salida: imagen en escala de grises PicSampleGray.bmp
% imagen ecualizada PicEqual.bmp
p>%
% Descripción de la ventana de gráficos de salida
% figura NO 1 Imagen en color a procesar
% figura NO 2 Imagen en escala de grises
% figura Histograma NO 3
% figura NO 4 histograma ecualizado
% figura NO 5 curva de cambio de escala de grises
% figura NO 6 imagen ecualizada
% 1. El nombre de la imagen procesada debe ser PicSample.jpg
% 2. El espacio de trabajo se borrará cada vez que se ejecute el programa
% Author;archiless landlord
borrar todo
% 1. Preprocesamiento de imágenes, lectura de imágenes en color y conversión a escala de grises
PS= imread('PicSample.jpg'); archivo de imagen en color
imshow(PS) %Mostrar figura NO 1
title('Ingresar imagen JPG en color')
imwrite(rgb2gray(PS),' PicSampleGray.bmp'); %Convierte la imagen en color a escala de grises y guárdala
PS=rgb2gray(PS); %Grayscaled Los datos se almacenan en la matriz
figure,imshow( PD) % muestra la imagen en escala de grises, que también es la muestra antes de la figura de ecualización NO 2
título('Imagen en escala de grises')
%2, dibuja el histograma
[m,n]=size(PS); %Medir parámetros de tamaño de imagen
GP=zeros( 1,256 %Crear previamente un vector para almacenar la probabilidad de aparición en escala de grises
for k=0:255
GP(k+1)=length(find(PS==k)) /(m*n % Calcula la probabilidad de que aparezca cada nivel de gris y guárdalo); en la posición correspondiente en GP
end
figure,bar(0:255,GP, 'g') % dibujar histograma
figura NO 3
title('Histograma de la imagen original')
xlabel('Valor de escala de grises')
ylabel('Probabilidad de aparición')
p>%3, ecualización de histograma
S1=zeros(1,256);
para i=1:256
para j=1 :i
S1(i)=GP(j)+S1(i); %Calcular Sk
fin
fin
S2= round(S1*256); %Reduce Sk a un nivel de gris similar
para i=1:256
GPeq(i)=sum(GP(find( S2==i); ))); %Calcular la probabilidad de ocurrencia de cada nivel de gris existente
end
figure,bar(0:255,GPeq,'b') % Muestra la figura del histograma ecualizado. NO 4
title('Histograma después de la ecualización')
xlabel('Valor de escala de grises')
ylabel('Probabilidad de ocurrencia')
figure,plot(0:255,S2,'r') %Mostrar curva de cambio de escala de grises figura NO 5
legend('Curva de cambio de escala de grises')
xlabel('Original nivel de gris de la imagen')
ylabel('Nivel de gris igualado')
% Cuatro, balance de imagen
PA=PS;
for i=0:255
PA(find(PS==i))=S2(i+1 %Asigne el valor de gris normalizado de cada píxel a este píxel
; end
figure,imshow(PA) %Muestra la imagen ecualizada figura NO 6
title('Imagen después de la ecualización')
imwrite(PA,'PicEqual .bmp');