OpenCV - Phát hiện cạnh Canny

Canny Edge Detection được sử dụng để phát hiện các cạnh trong hình ảnh. Nó chấp nhận một hình ảnh tỷ lệ xám làm đầu vào và nó sử dụng một thuật toán nhiều tầng.

Bạn có thể thực hiện thao tác này trên một hình ảnh bằng cách sử dụng Canny() phương pháp của imgproc , sau đây là cú pháp của phương thức này.

Canny(image, edges, threshold1, threshold2)

Phương thức này chấp nhận các tham số sau:

  • image - A Mat đối tượng đại diện cho nguồn (hình ảnh đầu vào) cho hoạt động này.

  • edges - A Mat đối tượng đại diện cho đích (các cạnh) cho thao tác này.

  • threshold1 - Một biến kiểu double đại diện cho ngưỡng đầu tiên cho quy trình trễ.

  • threshold2 - Một biến kiểu double đại diện cho ngưỡng thứ hai cho thủ tục trễ.

Thí dụ

Chương trình sau đây là một ví dụ minh họa, cách thực hiện thao tác Phát hiện cạnh Canny trên một hình ảnh nhất định.

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");
   } 
}

Giả sử rằng sau đây là hình ảnh đầu vào canny_input.jpg được chỉ định trong chương trình trên.

Đầu ra

Khi thực hiện chương trình trên, bạn sẽ nhận được kết quả sau:

Image Processed

Nếu bạn mở đường dẫn được chỉ định, bạn có thể quan sát hình ảnh đầu ra như sau: