How to write the name of Objects in the image after recognition of them.
    3 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Fafa Teligence
 le 11 Déc 2020
  
    
    
    
    
    Commenté : Fafa Teligence
 le 11 Déc 2020
            Hello Every one! I hope you are doing well. 
I have written a code to detect coins in an image, and at last I want to write a text on each of these objects (coins). But I confront error. can anyone help me please. the code I have written is here: 
pic = imread('coins.png');
I = rgb2gray(pic);
imshow(I)
bw = imbinarize(I);
figure; imshow(bw)
bw = bwareaopen(bw, 500);
figure; imshow(bw)
se = strel('disk', 2);
bw = imclose(bw, se);
bw = imfill (bw, 'holes');
figure; imshow(bw);
[r, n] = bwlabel(bw);
prop = regionprops(bw,{'Area','centroid'});
%props =struct2table(props);
Dollor1=0;
Dollor2=0;
for i=1:n
    if propsarea.Area(i)<2000
        rgb = insertText(I,[prop.Centrod(i,1) prop.Centroid(i,2)],'1 Dollor',0.2, 'FontSize',12,'TextColor','black');
        Dollor1=Dollor1+1;
    elseif propsarea.Area(i)>2000
        rgb = insertText(I,[prop.Centroid(i,1) prop.Centrod(i,2)],'2 Dollors',0.2 ,'FontSize',12,'TextColor','black');
        Dollor2=Dollor2+1;
    end
end
figure; imshow(rgb)
0 commentaires
Réponse acceptée
  KALYAN ACHARJYA
      
      
 le 11 Déc 2020
        
      Modifié(e) : KALYAN ACHARJYA
      
      
 le 11 Déc 2020
  
      #Modified
prop = regionprops('table',bw,{'Area','centroid'});
% Modified here......^
Dollor1=0;
Dollor2=0;
for i=1:n
    if prop.Area(i)<2000
        %position=[prop.Centroid(i,1),prop.Centroid(i,2)];
        position=[1 5;7 6;9 10];%sample example
        rgb = insertText(I,position,'Dollor', 'FontSize',12,'TextColor','black');
        Dollor1=Dollor1+1;
    elseif prop.Area(i)>2000
        %position=[prop.Centroid(i,1),prop.Centroid(i,2)];
        position=[1 5;7 6;9 10]; %sample Example
        rgb = insertText(I,position,'Dollors','FontSize',12,'TextColor','black');
        Dollor2=Dollor2+1;
    else
    end
end
figure; imshow(rgb)
Please note that I have test the code with position sample example, here you have to define the 3 coordinates for the text box. Following result reflects only two numbers, ??
>> [prop.Centroid(i,1),prop.Centroid(i,2)]
ans =
  265.7967  102.6094
Here 
prop =
  10×2 table
    Area        Centroid    
    ____    ________________
    2651    37.152    106.72
    1854    56.145    49.862
    2680    96.201    146.09
    1810    110.06    84.928
    2753    120.36    208.67
    2510    148.56     34.44
    2594    174.82    119.97
    2544    216.93    70.792
    1893    236.07    173.37
    1864    265.8     102.61
Hope the remaining work (Postions of the text box) you can do that.
3 commentaires
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur White dans Help Center et File Exchange
			
	Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

