7

Ho bisogno di aiuto, devo fare un progetto sulle foglie.Identifica lobate e dossi di foglie

Voglio farcela con MATLAB.

il mio ingresso è l'immagine di una foglia (con uno sfondo bianco) e ho bisogno di sapere due cose sulla foglia:

1) trovare la foglia lobata (i pixel di ogni foglia lobata):

  • Appoggiare la foglia su un tavolo o su uno spazio di lavoro in cui è possibile esaminarla.

  • Guarda la foglia che stai cercando di identificare. Se la foglia sembra avere le dita, questi sono considerati lobi. Ci può essere ovunque da due a molti lobi su una foglia.

  • Distinguere le foglie pennate dalle foglie palmate guardando le vene sul lato inferiore della foglia. Se tutte le venature provengono dallo lo stesso posto alla base della foglia, viene considerato palmosamente lobato. Se sono formati in vari punti sulla foglia da una linea centrale , la foglia è pinnatamente lobata.

  • Identificare il tipo di foglia utilizzando un dizionario foglia.

enter image description here

2) trovare circa il numero di dossi della foglia:

in altre parole, trovare i "punti" gonfie di ogni foglia. enter image description here

questi sono esempi di foglie:

enter image description here enter image description here enter image description here

+0

1 dovrebbe essere abbastanza semplice con uno sfondo bianco. 2 potrebbe essere più difficile, a seconda della foglia e delle condizioni di illuminazione. Puoi darci un esempio delle immagini che useresti? – Junuxx

+0

non ci sono problemi di condizioni di illuminazione. Non so come spiegarlo, ma si può presumere che non ci siano problemi di condizioni di illuminazione. (Sto cercando come spiegarlo, quindi aspetta per favore) –

+0

Ci sono sempre problemi con le condizioni di illuminazione. I dossi sarebbero probabilmente più facili da vedere con la luce proveniente dal lato che con la luce che proveniva da sopra, per esempio. – Junuxx

risposta

7

Ho trovato alcuni esempi di foglie in here.

Ecco il mio tentativo di risolvere il problema. Nelle immagini che ho trovato, lo sfondo è completamente nero.Se non è così nelle tue immagini, dovresti usare il metodo di soglia di Otsu.

ho pensato che non ci può essere solo 3 tipi di foglie, in base alla vostra immagine: enter image description here

L'idea è di fare analisi blob. Uso l'operazione morfologica di apertura, per separare le foglie. Se c'è solo un blob dopo l'apertura, presumo che non sia composto. Se le foglie non sono composte, analizzo lo solidity dei BLOB. Non abbastanza solido significa che sono lobati.

Ecco alcuni esempi:

enter image description here enter image description here enter image description here enter image description here

function IdentifyLeaf(dirName,fileName) 

    figure(); 
    im = imread(fullfile(dirName,fileName)); 
    subplot(1,3,1); imshow(im); 

% thresh = graythresh(im(:,:,2)); 
    imBw = im(:,:,2) > 0; 
    subplot(1,3,2);imshow(imBw); 

    radiusOfStrel = round(size(im,1)/20) ; 
    imBwOpened = imopen(imBw,strel('disk',radiusOfStrel)); 

    subplot(1,3,3);imshow(imBwOpened); 

    rpOpened = regionprops(imBwOpened,'Area'); 
    if numel(rpOpened)>1 
     title('Pinnately Compound'); 
    else 
     rp = regionprops(imBw,'Area','Solidity'); 
     %Leave only largest blob 
     area = [rp.Area]; 
     [~,maxIndex] = max(area); 
     rp = rp(maxIndex); 

     if rp.Solidity < 0.9 
      title('Pinnately Lobed'); 
     else 
      title('Pinnately Veined'); 
     end 
    end 
end 
+0

@Andey, WOW! è un buon inizio per me! Grazie per il vostro aiuto. Sto cercando di fare quello che tu e Aki mi avete suggerito. grazie mille! tempo! thankssss !! –

+0

@AlonShmiel, Be-Hatzlaha! (Buona fortuna) –

+2

Conosco l'ebraico, vengo da Israele :-P TODA! –

2

voglio affrontare questo problema, convertendolo da 2d a 1d mediante scansione in un vettore del perimetro del foglio usando -algoritmo "mano destra sul muro".

Da questi dati, presumo, si può trovare un asse dominante di simmetria (ad esempio, una linea di montaggio); la distanza del perimetro sarebbe calcolata da quell'asse e quindi si potrebbe semplicemente usare una soglia + filtraggio per trovare massimi e minimi locali per rivelare il numero di lobi/dita ... L'istogramma della distanza potrebbe differenziare tra foglie pinnatamente lobate e foglie pinnatamente composte .

altro singolo metriche per controllare la curvatura del perimetro (da due punti estremi) sarebbe http://en.wikipedia.org/wiki/Sinuosity

Riconoscendo vene è purtroppo un argomento completamente differente.

+0

grazie mille nuch! Sto provando proprio ora a fare cosa tu e Andrey mi avete suggerito, vi aggiornerò! –

Problemi correlati