Un histograma de imagen es una representación gráfica de la distribución de intensidades en una imagen indexada o en escala de grises. Muestra cuántas veces ocurre cada valor de intensidad en la imagen.
Código n.º 1: muestra el histograma de una imagen mediante la función de biblioteca de MATLAB.
% Read an Image in MATLAB Environment img=imread('apple.jpg'); % Convert image to grayscale image # if read image is an RGB image img=rgb2gray(img); % Show histogram of image # using imhist() function imhist(img);
Código n.º 2: muestra el histograma de una imagen sin utilizar la función de biblioteca de MATLAB.
Acercarse :
- Lea el archivo de imagen de origen en la array de imagen
- Conviértalo a escala de grises, si es una imagen RGB
- Iterar sobre la array de imagen y contar la frecuencia de cada valor posible de intensidad
- trazar la frecuencia contada
% Read source image file img = imread('apple.jpg'); % Convert image to grayscale image img=rgb2gray(img); % get the dimension of the image [x, y] = size(img); % Create a frequency array of size 256 frequency = 1 : 256; count = 0; % Iterate over grayscale image matrix % for every possible intensity value % and count them for i = 1 : 256 for j = 1 : x for k = 1 : y % if image pixel value at location (j, k) is i-1 % then increment count if img(j, k) == i-1 count = count + 1; end end end % update ith position of frequency array with count frequency(i) = count; % reset count count = 0; end n = 0 : 255; % Display Histogram stem(n, frequency); grid on; ylabel('Number of pixels with such intensity levels -->'); xlabel('Intensity Levels -->'); title('HISTOGRAM OF THE IMAGE');
Aporte:
Producción: