2013-03-18 14 views
5

Ho una matrice di numeri interi negativi e positivi. Voglio impostare gli elementi negativi su 0 e gli elementi positivi su 1. Non voglio impostare ogni elemento singolarmente.Modifica bulk elemento Mat: negativo a 0, positivo a 1

C'è qualche funzione/combinazione di funzioni in OpenCv che può eseguire questo?

+0

Cosa langu età stai usando? – Geoff

+0

Sto usando C++. – Barshan

+0

(Modificato per errori di battitura nel titolo.) – Geoff

risposta

4

Vedere la funzione threshhold. Inoltre, this tutorial spiega come ottenere un'immagine binaria applicando una soglia a livello fisso a ciascun elemento dell'array.

cv::Mat source_array, binary_output; 
cv::threshold(source_array, binary_output, 0, 1, cv::THRESH_BINARY); 
1

Quello che stai facendo si chiama thresholding. La risposta dipende dalla lingua che stai usando. Di seguito sono riportati alcuni esempi.

C++

cv::threshold(m, m, 0, 1, cv::THRESH_BINARY); 

C

cvThreshold(m, m, 0, 1, THRESH_BINARY); 

Python (NumPy, CV2)

m = m > 0 

Python (cv)

cv.Threshold(m, m, 0, 1, cv.CV_THRESH_BINARY) 
Problemi correlati