Red de conocimiento informático - Conocimiento sistemático - ¡Buscando algoritmo y código fuente! ! ! Utilice Matlab para programar una cuantificación no uniforme de imágenes.

¡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');