在Python中使用OpenCV(CV2)對圖像進行邊緣檢測


轉載:https://blog.csdn.net/cumtb2002/article/details/107798767

 

Modules used:

使用的模塊:

For this, we will use the opencv-python module which provides us various functions to work on images.

為此,我們將使用opencv-python模塊,該模塊為我們提供了處理圖像的各種功能。

Download opencv-python

下載opencv-python

  1.  
    General Way:
  2.  
    pip install opencv-python
  3.  
     
  4.  
    Pycharm Users:
  5.  
    Go to the project Interpreter and install this module from there.

opencv-python Module:

opencv-python模塊:

opencv-python is a python library that will solve the Computer Vision Problems and provides us various functions to edit the Images.

opencv-python是一個python庫,它將解決計算機視覺問題並為我們提供編輯圖像的各種功能。

Note: The edge Detection is possible only in grayscale Image.

注意:只能在灰度圖像中進行邊緣檢測。

What we will do in this script?

我們將在此腳本中做什么?

To detect the edges of the images we will use opencv-python various Functions and Provide thresholds.

為了檢測圖像的邊緣,我們將使用opencv-python的各種功能並提供閾值。

In this article we will detect the edge of the Image with the help of various functions and the accuracy of edge increases as we go down,

在本文中,我們將借助各種功能來檢測圖像的邊緣,並且當我們下降時邊緣的精度會提高,

  • Sobel Function: This Function will create the Horizontal and vertical edges and after that, we will use the Bitwise or operator to combine them

    Sobel函數 :此函數將創建水平邊緣和垂直邊緣,然后,我們將使用按位或運算符將它們組合

  • Laplacian Function: This Function is the simplest Function in which we just have to put the Grayscale Variable into it, and we will get the edge detected image.

    拉普拉斯函數 :此函數是最簡單的函數,只需要將灰度變量放入其中,就可以得到邊緣檢測到的圖像。

  • Canny Function: This is the most powerful function for edge detection and most accurate.

    Canny功能 :這是邊緣檢測功能最強大且最准確的功能。

Let's see the code:

讓我們看一下代碼:

1)使用Sobel函數 (1) Using Sobel Function)

  1.  
    # importing the module
  2.  
    import cv2
  3.  
     
  4.  
    # read the image and store the data in a variable
  5.  
    image=cv2.imread("/home/abhinav/PycharmProjects/untitled1/b.jpg")
  6.  
     
  7.  
    # make it grayscale
  8.  
    Gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
  9.  
     
  10.  
    # Make it with the help of sobel
  11.  
    # make the sobel_horizontal
  12.  
    # For horizontal x axis=1 and yaxis=0
  13.  
    # for vertical x axis=0 and y axis=1
  14.  
    Horizontal=cv2.Sobel(Gray,0,1,0,cv2.CV_64F)
  15.  
     
  16.  
    # the thresholds are like
  17.  
    # (variable,0,<x axis>,<y axis>,cv2.CV_64F)
  18.  
    Vertical=cv2.Sobel(Gray,0,0,1,cv2.CV_64F)
  19.  
     
  20.  
    # DO the Bitwise operation
  21.  
    Bitwise_Or=cv2.bitwise_or(Horizontal,Vertical)
  22.  
     
  23.  
    # Show the Edged Image
  24.  
    cv2.imshow("Sobel Image",Bitwise_Or)
  25.  
    cv2.imshow("Original Image",Gray)
  26.  
    cv2.waitKey(0)
  27.  
    cv2.destroyAllWindows()

Output:

輸出:

Python | Edge Detection of Image using OpenCV (CV2) (1)

2)拉普拉斯函數 (2) Laplacian Function)

  1.  
    # importing the module
  2.  
    import cv2
  3.  
     
  4.  
    # read the image and store the data in a variable
  5.  
    image=cv2.imread("/home/abhinav/PycharmProjects/untitled1/b.jpg")
  6.  
     
  7.  
    # make it grayscale
  8.  
    Gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
  9.  
     
  10.  
    # Make Laplacian Function
  11.  
    Lappy=cv2.Laplacian(Gray,cv2.CV_64F)
  12.  
     
  13.  
    cv2.imshow("Laplacian",Lappy)
  14.  
    cv2.imshow("Original",Gray)
  15.  
    cv2.waitKey(0)
  16.  
    cv2.destroyAllWindows()

Output:

輸出:

Python | Edge Detection of Image using OpenCV (CV2) (2)

3)使用Canny函數 (3) Using Canny Function)

  1.  
    # importing the module
  2.  
    import cv2
  3.  
     
  4.  
    # read the image and store the data in a variable
  5.  
    image=cv2.imread("/home/abhinav/PycharmProjects/untitled1/b.jpg")
  6.  
     
  7.  
    # make it grayscale
  8.  
    Gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
  9.  
     
  10.  
    # Make canny Function
  11.  
    canny=cv2.Canny(Gray,40,140)
  12.  
     
  13.  
    # the threshold is varies bw 0 and 255
  14.  
    cv2.imshow("Canny",canny)
  15.  
    cv2.imshow("Original",Gray)
  16.  
    cv2.waitKey(0)
  17.  
    cv2.destroyAllWindows()

Output:

輸出:

Python | Edge Detection of Image using OpenCV (CV2) (3)

翻譯自: https://www.includehelp.com/python/edge-detection-of-image-using-opencv-cv2.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM