OpenCV ersetzen bestimmte Pixelwerte mit einem anderen Wert

Möchte ich erkennen, die eine bestimmte pixel-Wert (sagen wir, 128 in eine vorzeichenlose 8-bit 1-Kanal-Bild) in einer cv::Mat Bild und ersetzen Sie den Wert aller Pixel mit bestimmten Wert mit einem anderen Wert (ersetzen jedes mit 128 120). Gibt es eine effiziente Möglichkeit, dies zu tun? Oder sollte ich die Suche und Behauptung Operationen, pixel für pixel?

Ich mit Programmieren angefangen, konnte aber nicht abgeschlossen. Hier der Teil meines Codes:

cv::Mat source; 
unsigned oldValue = 128;
unsigned newValue = 120;

cv::Mat temp = (source == oldValue);
  • Ich sehe nicht, wie können Sie prüfen, einen bestimmten Wert ohne surfen Ihre Pixel. Es ist nur O(N) Komplexität.
  • haben Sie einen Blick auf cv::LUT, die in diesem tutorial: docs.opencv.org/doc/tutorials/core/how_to_scan_images/... erstellen Sie eine look-up-Tabelle, wobei die Tabelle[i] == ich überall, aber Tabelle[128] == 120
InformationsquelleAutor elmass | 2015-09-02
Schreibe einen Kommentar