Как установить значение оттенка и насыщенности для цветного изображения hsv в Matlab 2016b - PullRequest
0 голосов
/ 05 октября 2019

. Как установить значение оттенка и насыщенности для цветного изображения hsv в matlab 2016b

1 Ответ

0 голосов
/ 05 октября 2019

Основная проблема заключается в том, что ваши диапазоны определены в диапазоне uint8 (диапазон [0, 255]), а результат rgb2hsv удваивается в диапазоне [0, 1].

Вы можете умножить на 255 для преобразования диапазона [0, 1] в [0, 255].

Ограничить диапазон просто, используя функции min и max.

Вот рабочий пример:

RGB_Color = imread('peppers.png');  %Read sample image.

hsvImage = rgb2hsv(RGB_Color);

%Convert HSV from range [0, 1] to range [0, 255]
hsvImage = hsvImage*255;

H = hsvImage(:,:,1); 
S = hsvImage(:,:,2); 
V = hsvImage(:,:,3);

%1. Hue value must be in the range between 10 to 40
H = max(min(H, 40), 10);

%2. saturation value(100–255)
S = max(min(S, 255), 100);


%Convert back to RGB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
hsvImage = cat(3, H, S, V);

%Convert HSV from range [0, 255] to range [0, 1].
hsvImage = hsvImage / 255;

rgbImage = hsv2rgb(hsvImage);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Display result
figure;imshow(RGB_Color);title('Original RGB image');
figure;imshow(rgbImage);title('RGB after HSV thresholding');

Исходное изображение RGB:
Original RGB image

RGB после определения порога HSV:
RGB after HSV thresholding

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...