Effacer les filtres
Effacer les filtres

Need some help regarding color detection and it's position

4 vues (au cours des 30 derniers jours)
i Venky
i Venky le 13 Jan 2012
Modifié(e) : DGM le 14 Fév 2023
I want to detect the color and it's position in an image. I don't get the output. I would be really happy if you could guide me.
Example: Take a red box in a white background at some position. I want to detect the red color and it's position (i.e. co-ordinates) in the image.
Thanks in advance.

Réponse acceptée

Chandra Kurniawan
Chandra Kurniawan le 14 Jan 2012
Hi, i Venky
from my previous post, I've improved the code.
This picture below is test image :
Here the code :
Irgb = imread('multiplecolors.jpg');
Ihsv = rgb2hsv(Irgb);
low = 0;
high = 0.04;
h = (Ihsv(:,:,1) >= low) & (Ihsv(:,:,1) <= high);
s = (Ihsv(:,:,2) >= 0.9) & (Ihsv(:,:,2) <= 1);
v = (Ihsv(:,:,3) >= 0) & (Ihsv(:,:,3) <= 1);
mask = uint8(h & s & v);
mask = imclose(mask, strel('disk', 5));
mR = mask .* Irgb(:,:,1);
mG = mask .* Irgb(:,:,2);
mB = mask .* Irgb(:,:,3);
Icolor = cat(3, mR, mG, mB);
Igray = rgb2gray(Icolor);
Ibw = im2bw(Igray,graythresh(Igray));
Ilabel = bwlabel(Ibw);
stat = regionprops(Ilabel,'boundingbox','centroid');
imshow(Irgb); hold on;
for x = 1 : length(stat)
bb = stat(x).BoundingBox;
xc = stat(x).Centroid(1);
yc = stat(x).Centroid(2);
txt = sprintf('x : %.2f\ny : %.2f',xc,yc);
And the result shown below :
The pink colored object is not detected anymore.
It is so simple like I said. Just adjusting the values of hue, saturation, intensity.
  9 commentaires
jyothi le 14 Mai 2014
hey thank u very much then what are the values for other different colors
Image Analyst
Image Analyst le 14 Mai 2014
Extract them, then enter in a location and find out:
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 13 Jan 2012
You have already been guided in your previous copy of this question.
In order to be guided further, you need to answer the question there as to how exactly you define each color.


En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by