OpenCV - Einfacher Schwellenwert
Thresholding ist eine Methode zur Bildsegmentierung. Im Allgemeinen werden damit Binärbilder erstellt. Es gibt zwei Arten von Schwellenwerten, nämlich einfache Schwellenwerte und adaptive Schwellenwerte.
Einfache Schwelle
Bei einer einfachen Schwellenwertoperation wird den Pixeln, deren Werte größer als der angegebene Schwellenwert sind, ein Standardwert zugewiesen.
Mit dieser Methode können Sie eine einfache Schwellenwertoperation für ein Bild ausführen threshold() des Imgproc classIm Folgenden finden Sie die Syntax dieser Methode.
threshold(src, dst, thresh, maxval, type)
Diese Methode akzeptiert die folgenden Parameter:
src - Ein Objekt der Klasse Mat Darstellen des Quellbildes (Eingabebildes).
dst - Ein Objekt der Klasse Mat Darstellen des Zielbildes (Ausgabebildes).
thresh - Eine Variable vom Doppeltyp, die den Schwellenwert darstellt.
maxval - Eine Variable vom Doppeltyp, die den Wert darstellt, der angegeben werden soll, wenn der Pixelwert größer als der Schwellenwert ist.
type - Eine Variable vom Typ Integer, die den Typ des zu verwendenden Schwellenwerts darstellt.
Beispiel
Das folgende Programm zeigt, wie eine einfache Schwellenwertoperation für ein Image in OpenCV ausgeführt wird.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class Thresh {
public static void main(String args[]) {
// Loading the OpenCV core library
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
// Reading the Image from the file and storing it in to a Matrix object
String file ="E:/OpenCV/chap14/thresh_input.jpg";
Mat src = Imgcodecs.imread(file);
// Creating an empty matrix to store the result
Mat dst = new Mat();
Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);
// Writing the image
Imgcodecs.imwrite("E:/OpenCV/chap14/thresh_trunc.jpg", dst);
System.out.println("Image Processed");
}
}
Angenommen, das Folgende ist das Eingabebild thresh_input.jpg im obigen Programm angegeben.
Ausgabe
Beim Ausführen des Programms erhalten Sie folgende Ausgabe:
Image Processed
Wenn Sie den angegebenen Pfad öffnen, können Sie das Ausgabebild wie folgt beobachten:
Andere Arten der einfachen Schwellenwertbildung
Zusätzlich zu THRESH_BINARYDie im vorherigen Beispiel demonstrierte Operation OpenCV bietet verschiedene andere Arten von Schwellenwertoperationen. Alle diese Typen werden durch vordefinierte statische Felder (feste Werte) von dargestelltImgproc Klasse.
Sie können den Typ der gewünschten Schwellenwertoperation auswählen, indem Sie den entsprechenden vordefinierten Wert an den genannten Parameter übergeben type des threshold() Methode.
Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);
Im Folgenden sind die Werte aufgeführt, die verschiedene Arten von Schwellenwertoperationen und ihre jeweiligen Ausgaben darstellen.
Bedienung und Beschreibung | Ausgabe |
---|---|
THRESH_BINARY |
|
THRESH_BINARY_INV |
|
THRESH_TRUNC |
|
THRESH_TOZERO |
|
THRESH_TOZERO_INV |
|