I have a image of two circles which are partially occulded. I have to label them as two different label. is there any way to label them differently? I am adding some more images. Images have some regular & non-regular shapes.

1 回表示 (過去 30 日間)
>>
>>
  2 件のコメント
poonam
poonam 2016 年 1 月 1 日
Hi harjeet, I am adding some more images. My Images have some regular and some non-regular shapes. regular shapes include perfect circle and distorted at the borders. non regular shape are toching to the regular shapes.
>>
>>
Image Analyst
Image Analyst 2016 年 1 月 1 日
poonam, did you see my answer at all????

サインインしてコメントする。

採用された回答

Image Analyst
Image Analyst 2015 年 12 月 28 日
poonam, did you see the example in the help for the watershed function? This is exactly the help demo - two overlapping circles, separating and labeling them. Just follow the code in the help example.
  3 件のコメント
poonam
poonam 2016 年 1 月 3 日
Yes sir, I learned about that function. and it worked very well for all my images. And I think my revision of question was unnecessary. Thank you.

サインインしてコメントする。

その他の回答 (1 件)

harjeet singh
harjeet singh 2015 年 12 月 28 日
hello poonam do use this code
clear all
close all
clc
img=imread('rgbCattach.png');
img=rgb2gray(img);
figure(1)
imshow(img)
drawnow
img=logical(img);
[centers, radii, metric] = imfindcircles(img,[30 100]);
img_labeled(1:size(img,1),1:size(img,2))=0;
for i=1:size(centers,1)
for j=1:size(img,1)
for k=1:size(img,2)
d=sqrt( (j-centers(i,2)).^2 + (k-centers(i,1)).^2);
if(d<=radii(i))
img_labeled(j,k)=i;
end
end
end
end
figure(2)
imshow(img_labeled)
drawnow
  6 件のコメント
harjeet singh
harjeet singh 2016 年 1 月 1 日
hello poonam as @image analyst told you to use watersed function, that's the best in your case use this code
clear all
close all
warning off
clc
img=imread('s4.png');
img=logical(img(:,:,1));
figure(1)
imshow(img)
drawnow
D = bwdist(~img);
D = -D;
D(~D) = -Inf;
figure(2)
imshow(D,[],'InitialMagnification','fit')
title('Distance transform of ~bw')
L = double(watershed(D));
rgb = label2rgb(L,'jet',[.5 .5 .5]);
figure(3)
imshow(rgb,'InitialMagnification','fit')
title('Watershed transform of D')
L(L==1)=0;
figure(4)
subplot(1,2,1)
imshow(L)
title('bw labeled image')
subplot(1,2,2)
imshow(rgb)
title('jet image')
poonam
poonam 2016 年 1 月 3 日
Thank you harjeet, 'watershed' function suggested by @Image Analysis worked perfectly well in my problem. Now I can extract these object individual.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGraphics Performance についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by