applying thresholds simultaneously in SimpleColorDetectionByHue()
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
giacomo
am 20 Sep. 2017
Kommentiert: Image Analyst
am 25 Mär. 2019
I'm trying to use this program to detect not one but three different colors (red green blue) at the same time, applying three different thresholds. Is there a way? Try to explain each little step because I haven't used Matlab for a while and I'm a bit rusty. Thank you all!
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 20 Sep. 2017
Bearbeitet: Image Analyst
am 20 Sep. 2017
Yes, basically just do each color one at a time and get a mask for each one, then OR them together.
% Set hsv thresholds for color1
maskColor1 = ........ % Create mask based on those thresholds.
% Set hsv thresholds for color2
maskColor2 = ........
% Set hsv thresholds for color3
maskColor3 = ........
% Get the mask for all 3
allThreeColorsMask = maskColor1 | maskColor2 | maskColor3;
17 Kommentare
Image Analyst
am 17 Okt. 2017
Not sure what you want, but what you are doing is taking the leftmost quarter strip of the image, and getting the mean all the gray levels in that vertical strip. The last two lines could be done like this:
Porosity1 = mean2(vImage(1:r,1:c/4,:));
Of course you need to define vImage. Did you mean hsvImage? Or did you mean (but left out)
vImage = hsvImage(:, :, 1); % Extract value channel.
If you meant that, then you can leave off the final colon:
Porosity1 = mean2(vImage(1:r,1:c/4));
If you want a fixed number of columns, instead of 1/4 the width of the image, then just specify it. For example, use 100 instead of c/4. It does not need to involve rect() unless you want the user to be able to adjust the location of the box interactively over the image.
Weitere Antworten (1)
CHERI AUTO
am 25 Mär. 2019
how to change input image as real time web cam in the laptop on matlab coading
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!