Voglio segmentare le immagini (dalle riviste) in parti di testo e immagini. Ho diversi istogrammi per diverse ROI nella mia foto. Io uso opencv con python (cv2).Come riconoscere gli istogrammi con una forma specifica in opencv/python
voglio riconoscere istogrammi che assomigliano a questo
http://matplotlib.sourceforge.net/users/image_tutorial-6.png
in quanto è una forma tipica per una regione di testo. Come lo posso fare?
Modifica: Grazie per il vostro aiuto finora.
confronto questi istogrammi ho ricevuto dai ROI ad un istogramma di esempio I purché:
hist = cv2.calcHist(roi,[0,1], None, [180,256],ranges)
compareValue = cv2.compareHist(hist, samplehist, cv.CV_COMP_CORREL)
print "ROI: {0}, compareValue: {1}".format(i,compareValue)
Supponendo ROI 0, 1, 4 e 5 sono aree di testo e ROI è un'area di immagine, ottengo output come questo:
- ROI: 0, compareValue: 1.0
- ROI: 1, compareValue: -0,000195522081574 < --- sbagliato classificato
- ROI: 2, compareValue: 0,0612670248952
- ROI: 3, compareValue: -0,000517370176887
- ROI: 4, compareValue: 1.0
- ROI: 5, compareValue: 1,0
Cosa posso fare per evitare l'errata classificazione? Per alcune immagini, il tasso di errata classificazione è di circa il 30%, che è troppo alto.
(ho provato anche con CV_COMP_CHISQR, CV_COMP_INTERSECT, CV_COMP_BHATTACHARYY e (cron * samplehist) .sum() ma forniscono anche compareValues sbagliate)
questa è un'idea davvero interessante. ma cosa intendi per 'myRef'? è un altro istogramma o le stesse dimensioni di 'myHist'? o è una matrice numpy arbitraria? – samkhan13
@ samkhan13 sì, 'myRef' è l'istogramma che vogliamo confrontare. – Simon