Red de conocimiento informático - Consumibles informáticos - Código fuente de software cuantitativo de código abierto

Código fuente de software cuantitativo de código abierto

La ecualización de histograma también es un tipo de cuantificación no lineal. Lo encontré en línea y el autor lo escribió con gran detalle.

% Trabajo de procesador de imágenes digitales

Este programa puede escalar archivos de imágenes en color en formato JPG y realizar ecualización de histogramas.

%

%Archivo de entrada: Imagen PicSample.jpg a procesar.

%Archivo de salida: imagen gris PicSampleGray.bmp.

% PicEqual.bmp imagen ecualizada

%

%Descripción de la ventana de gráficos de salida

%Imagen en color a procesar en la imagen número 1

% Imagen gris del gráfico N° 2

% Histograma del gráfico N° 3

% Histograma ecualizado del gráfico N° 4

% Figura 5 Curva de cambio de escala de grises

% Imagen de ecualización gráfica No. 6

% 1. El nombre de la imagen procesada debe ser PicSample.jpg.

% 2. Cada vez que se ejecuta el programa, se borrará el espacio de trabajo.

% Author; No Building Lord

Limpiar todo

% 1. Preprocesamiento de imágenes, leer imágenes en color y atenuarlas.

PS = im read(' pic sample . jpg '); %Leer archivo de imagen en color JPG

Imshow(PS)%El número de imagen mostrado es 1.

Title("Imagen JPG en color importada")

imwrite(rgb2gray(PS), ' picsamplegray . BMP '); Escala de grises la imagen en color y guárdala

PS = RGB 2 gris(PS); % de datos grises se almacenan en la matriz.

En la imagen, imshow(PS)% muestra una imagen gris, que también es la imagen de muestra número 2 antes de la ecualización.

Título ("Imagen gris")

% 2, dibujar histograma

[m, n] = tamaño (PS% parámetros de tamaño de imagen medidos <); /p>

GP = zero (1, 256); % Cree previamente un vector para almacenar probabilidades en escala de grises.

Para k=0:255

GP(k+1)= length(find(PS = = k))/(m * n % calcula cada nivel de gris); La probabilidad de nivel se almacena en la ubicación correspondiente en GP.

Fin

Gráfico, barra(0:255, GP, 'g')% traza el histograma Figura 3.

Título("Histograma de la imagen original")

Xlabel('Valor de gris')

Ylabel("Probabilidad de ocurrencia")

% 3, ecualización de histograma

s 1 = cero (1, 256);

Porque i=1:256

Para j=1 :i

s 1(I)= GP(j)+s 1(I % riesgo calculado

Fin

Fin

S2); = round(s 1 * 256); % Mueve Sk a un nivel de gris similar.

Porque i=1:256

GPeq(I)= sum(GP(find(S2 = = I)); % calcula la probabilidad de cada nivel de gris existente.

Fin

La figura, bar(0:255,GPeq,' b')% muestra el histograma balanceado Figura 4.

Título("Histograma después de la ecualización")

Xlabel('Valor de gris')

Ylabel("Probabilidad de ocurrencia")

En la figura, plot(0:255, S2, "r")% muestra la curva de cambio de escala de grises de la Figura 5

Leyenda ("Curva de cambio de escala de grises")

Xlabel( "Escala de grises de la imagen original")

Ylabel("Escala de grises después de la ecualización")

% 4, Ecualización de imagen

PA = PS

Porque i=0:255

PA(find(PS = = I))= S2(I+1); % normalizará la escala de grises de cada píxel. El valor asignado a este píxel.

Fin

Figura, imshow(PA)% muestra la imagen equilibrada Figura 6.

Título("imagen ecualizada")

imwrite(PA, 'pice qual . BMP');