Code detecting false objects
1 回表示 (過去 30 日間)
古いコメントを表示
On the left is the original image and on the right objects are being detected. Please advise. Also, there is another image in which I use the same code and it detects only one object. Why is this happening? I have attached that image as well. ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/294923/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/294923/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/294882/image.png)
clear all
close all
img= imread("C:\Users\0000_012_14px_prergb.tif");
imshow (img)
img=rgb2gray(img);
b=imbinarize(img); %binary image
imshow(b)
img1 = bwareafilt(b,[20 1000]); %retains objects pixel area
c=bwlabel(img1);
imshow(c)
measurements = regionprops(c,img, 'MeanIntensity'); %measurements = regionprops(labeledImage, grayscaleImage, 'MeanIntensity');
stats = regionprops('table',img1,'Centroid','MajorAxisLength','MinorAxisLength') %object detection
centers = stats.Centroid;
diameters = mean([stats.MajorAxisLength stats.MinorAxisLength],2);
radii = diameters/2;
hold on
viscircles(centers,radii); %drawing around the object
hold off
num_obj=height (stats)%finding the number of objects
0 件のコメント
回答 (1 件)
darova
2020 年 5 月 20 日
Use threshold to find appropriate objects
th = threshold(img);
% bw = im2bw(img,th);
bw = im2bw(img,th+0.1);
3 件のコメント
darova
2020 年 5 月 21 日
- I have to analyze a set of images, will it work on all of them?
Yes
- Also, there is no such function as "threshold" in Matlab.
Sorry, i mean graythresh()
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!