Image processing image color

4 ビュー (過去 30 日間)
ngo tung
ngo tung 2020 年 4 月 10 日
回答済み: Rahul 2024 年 11 月 14 日
Làm thế nào tôi có thể phát hiện đối tượng màu (đỏ xanh lục) trong ảnh cùng lúc bằng không gian HSV.
Cảm ơn bạn.

回答 (1 件)

Rahul
Rahul 2024 年 11 月 14 日
In order to detect colored objects from like the red and green objects from the provided figure using the HSV color space the following steps can be considered:
  • Converting the Image to HSV color space uning 'rgb2hsv' function.
  • Define color specific thresholdsholds.
  • Color thresholding can be done using ‘Color Thresholder app’ or writing custom code.
  • Apply the mask to the original image and extract specific colors using 'bsxfun' function.
Here is an example:
% Using 'rgb2hsv' to convert the image to HSV color space
hsvImage = rgb2hsv(image);
% Creating masks based on threshold values (Can be adjusted accordingly to requirement)
redMask = ((hsvImage(:,:,1) >= 0) & (hsvImage(:,:,1) <= 0.1) | (hsvImage(:,:,1) >= 0.9) & (hsvImage(:,:,1) <= 1)) & (hsvImage(:,:,2) >= 0.5) & (hsvImage(:,:,3) >= 0.5);
greenMask = (hsvImage(:,:,1) >= 0.25) & (hsvImage(:,:,1) <= 0.45) & (hsvImage(:,:,2) >= 0.5) & (hsvImage(:,:,3) >= 0.5);
combinedMask = redMask | greenMask;
% Applying the mask to the original image using 'bsxfun' function
outputImage = bsxfun(@times, image, cast(combinedMask, 'like', image));
imshow(outputImage);
Here is what the 'outputImage' looks like:
Refer to the following MathWorks documentations to know more:
Thanks.

カテゴリ

Help Center および File ExchangeImage Processing Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by