2013-03-18 11 views
5

Ich habe eine Matrix von negativen und positiven ganzen Zahlen. Ich möchte negative Elemente auf 0 und positive Elemente auf 1 setzen. Ich möchte nicht jedes Element einzeln setzen.Mat Element Bulk Modifikation: negativ auf 0, positiv auf 1

Gibt es eine Funktion/Kombination von Funktionen in OpenCv, die dies ausführen können?

+0

Was langu Alter verwendest du? – Geoff

+0

Ich benutze C++. – Barshan

+0

(Bearbeitet für Tippfehler in Titel.) – Geoff

Antwort

4

Sehen Sie sich die Funktion threshhold an. Außerdem erläutert this tutorial, wie Sie ein binäres Bild erhalten, indem Sie einen festen Schwellenwert für jedes Array-Element anwenden.

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

Was Sie tun, heißt thresholding. Die Antwort hängt davon ab, welche Sprache Sie verwenden. Unten sind ein paar Beispiele.

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) 
Verwandte Themen