Как преобразовать изображение RGB в изображение HSI в MATLAB?

Опубликовано: 7 Января, 2023

Преобразование цветового пространства изображения — одна из наиболее часто выполняемых операций в обработке изображений. Он используется настолько часто, что для определенного цветового режима изображения выполняется множество преобразований/фильтров. т. е. пороговое значение выполняется в градациях серого, цветовая нарезка в HSV и т. д. Цветовое пространство, которому со временем уделяется много внимания, — это HSL (интенсивность насыщения оттенка). Это связано с тем, что информация об изображении и его содержимом получается только путем анализа каналов. Поэтому может потребоваться преобразовать изображение в цветовое пространство HSI для выполнения некоторых операций. К сожалению, MATLAB не имеет встроенной функции для выполнения преобразований в цветовой режим HSI. Итак, в этой статье вы узнаете, как преобразовать изображение RGB в изображение HSI в MATLAB.

Пример 1:

Matlab




% MATLAB program for RGB to HSI image conversion.
    img = imread("test.jpg");
 
% Represent the RGB image in [0 1] range
    I = double(img) / 255;
    R = I(:,:,1);
    G = I(:,:,2);
    B =    I(:,:,3);
 
% Converting the image to HSV to
% obtain the Hue and Saturation Channels
    HSV = rgb2hsv(img);
    H = HSV(:,:,1);
    S = HSV(:,:,2);
 
% Intensity
    I = sum(I, 3)./3;
 
% Creating the HSL Image
  HSI = zeros(size(img));
  HSI(:,:,1) = H;
  HSI(:,:,2) = S;
  HSI(:,:,3) = I;
  figure,imshow(HSI); title("HSI Image");

Выход:

Мы будем использовать следующее изображение для демонстрации:

Объяснение:

Сначала импортируется изображение RGB с именем test.jpg . Затем все значения каждого канала делятся на 255, что дает нам двоичные значения, которые хранятся в переменной I. Затем каждый канал изображения RGB получается и сохраняется в разных переменных. Затем изображение преобразуется в цветовое пространство HSV с помощью функции rgb2hsv . Это позволит использовать каналы Hue и Saturation, полученные в результате этого диалога (упростит процесс получения каналов Hue и Saturation). Затем каналы Hue и Saturation также сохраняются в отдельных переменных. Тогда интенсивность изображения получается по формуле:

Затем создается нулевая матрица того же размера, что и исходное изображение, а затем заполняются каналами оттенка, насыщенности и интенсивности. В конце отображается изображение HSI.