OpenCV - Canny Edge Detection
Canny Edge Detection wird verwendet, um die Kanten in einem Bild zu erkennen. Es akzeptiert ein Graustufenbild als Eingabe und verwendet einen mehrstufigen Algorithmus.
Sie können diesen Vorgang für ein Bild mit dem ausführen Canny() Methode der imgproc Klasse, folgt die Syntax dieser Methode.
Canny(image, edges, threshold1, threshold2)
Diese Methode akzeptiert die folgenden Parameter:
image - A. Mat Objekt, das die Quelle (Eingabebild) für diese Operation darstellt.
edges - A. Mat Objekt, das das Ziel (Kanten) für diese Operation darstellt.
threshold1 - Eine Variable vom Typ double, die den ersten Schwellenwert für das Hystereseverfahren darstellt.
threshold2 - Eine Variable vom Typ double, die den zweiten Schwellenwert für das Hystereseverfahren darstellt.
Beispiel
Das folgende Programm zeigt anhand eines Beispiels, wie ein Canny Edge Detection-Vorgang für ein bestimmtes Bild 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 CannyEdgeDetection {
public static void main(String args[]) throws Exception {
// 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/chap17/canny_input.jpg";
// Reading the image
Mat src = Imgcodecs.imread(file);
// Creating an empty matrix to store the result
Mat gray = new Mat();
// Converting the image from color to Gray
Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);
Mat edges = new Mat();
// Detecting the edges
Imgproc.Canny(gray, edges, 60, 60*3);
// Writing the image
Imgcodecs.imwrite("E:/OpenCV/chap17/canny_output.jpg", edges);
System.out.println("Image Loaded");
}
}
Angenommen, das Folgende ist das Eingabebild canny_input.jpg im obigen Programm angegeben.
Ausgabe
Wenn Sie das obige Programm ausführen, erhalten Sie die folgende Ausgabe:
Image Processed
Wenn Sie den angegebenen Pfad öffnen, können Sie das Ausgabebild wie folgt beobachten: