Filter löschen
Filter löschen

To locate red color and display its pixel size.

12 Ansichten (letzte 30 Tage)
Navodita Das
Navodita Das am 31 Mai 2020
Beantwortet: darova am 14 Jun. 2020
Hello, can somebody please help me to correct the code. Below code is not giving expected output. It needs to detect the red color, locate it with bounding boxes and give its pixel size. But output image is almost black with only one pixel size and not even detecting all the red colors.
Input image-
clc
imgdata = imread('C:\Users\asus\Desktop\Paper meet 2020\454.jpg');
diff_im = imsubtract(imgdata(:,:,1), rgb2gray(imgdata));
%Use a median filter to filter out noise
diff_im = medfilt2(diff_im, [3 3]);
diff_im = im2bw(diff_im,0.18); % grayscle to binary image
left_red = bwareaopen(diff_im,300);% removes all pixels less than 300 from diff_im
bw = bwlabel(left_red, 8);% leftImage.............returns a label matrix, where conn specifies the connectivity.
L_stats = regionprops(bw, 'BoundingBox', 'Centroid'); %returns measurements for the set of properties specified by properties for each labeled region in the image I
% Display the image
imshow(left_red)
hold on
for object = 1:length(L_stats)
bb = L_stats(object).BoundingBox;
bc = L_stats(object).Centroid;
rectangle('Position',bb,'EdgeColor','r','LineWidth',2)
plot(bc(1),bc(2), '-m+')
a=text(bc(1)+15,bc(2), strcat('X: ', num2str(round(bc(1))), ' Y: ', num2str(round(bc(2)))));
L_cor(length(L_stats),1)=str2num(num2str(round(bc(1)))); %x
L_cor(length(L_stats),2)=str2num(num2str(round(bc(2)))) ; %y
set(a, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 12, 'Color', 'black');
end
hold of
output image-
output expected similar to-
How do I correct the code and output?

Antworten (1)

darova
darova am 14 Jun. 2020
Here is start
I0 = imread('image.jpeg');
ix = I0(:,:,1) > 220 & I0(:,:,2) < 50 & I0(:,:,3) < 50;
mask = uint8( repmat(ix,[1 1 3]) );
imshowpair(I0,I0.*mask)

Community Treasure Hunt

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

Start Hunting!

Translated by