Attualmente sto lavorando al progetto di elaborazione delle immagini. Sto usando Opencv2.3.1 con VC++. Ho scritto il codice in modo tale che l'immagine di input sia filtrata solo per il colore blu e convertita in un'immagine binaria. L'immagine binaria ha alcuni piccoli oggetti che non voglio. Volevo eliminare quegli oggetti piccoli, quindi ho usato il metodo cvFindContours()
di openCV per rilevare i contorni nell'immagine binaria. ma il problema è che non posso eliminare i piccoli oggetti nell'output dell'immagine. Ho usato la funzione cvContourArea()
, ma non ha funzionato correttamente .., anche la funzione di erosione non funzionava correttamente.Profili opencv: Come eliminare i contorni piccoli in un'immagine binaria
Quindi, per favore qualcuno mi aiuti con questo problema ..
L'immagine binaria che ho ottenuto:
L'immagine risultato/output che voglio di ottenere:
Grazie per il suggerimento, ma non riesco a capire come scrivere il codice per trovare l'area di ogni blob/contorno che è stata rilevata. Il codice che ho scritto è nel seguente link. Per favore, correggilo e rispondi. : http://textuploader.com/?p=6&id=YwRl. –
oh! Ho appena dimenticato, l'header e il file cpp per cvutility possono essere trovati in questi link: http: //textuploader.com/? P = 6 & id = Dtnvj http://textuploader.com/?p=6&id=TSlRQ Si prega di includerli in directory di origine e percorsi di inclusione. –
Non ho molta familiarità con la C api, ma sembra che tu stia solo calcolando l'area del primo contorno. È necessario scorrere i contorni e disegnare solo quelli con area> qualche soglia. Se stai solo cercando di trovare quell'oggetto, dovresti disegnare il contorno con l'area più grande. – fferen