이미지의 코너 감지

7590 단어 파이썬OpenCV

소개



OpenCV에서 코너를 감지합니다. 방법은 주로 Harris Corner Detection MethodgoodFeaturesToTrack Detection Method의 두 가지가 있습니다.

사용할 이미지는 다음 이미지입니다. Rectangles.png 로 저장하고 사용합니다.



Harris Corner Detection Method



시작하려면 Harris Corner Detection Method를 시도합니다.

harris.py
import cv2
import numpy as np


image= cv2.imread('Rectangles.png')
gray= cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

gray= np.float32(gray)

harris_corners= cv2.cornerHarris(gray, 3, 3, 0.05)

kernel= np.ones((7,7), np.uint8)

harris_corners= cv2.dilate(harris_corners, kernel, iterations= 2)


image[harris_corners > 0.025 * harris_corners.max()]= [255,127,127]

cv2.imwrite('Corner_detected_rectangles.png', image)
cv2.imshow('Harris Corners', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 처리 후



  • goodFeaturesToTrack Detection Method



    그런 다음 goodFeaturesToTrack Detection Method 를 시도합니다.

    goodReatures.py
    import cv2
    
    img= cv2.imread('Rectangles.png')
    gray= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    corners= cv2.goodFeaturesToTrack(gray, 100, 0.01, 50)
    
    for corner in corners:
        x,y= corner[0]
        x= int(x)
        y= int(y)
        cv2.rectangle(img, (x-10,y-10),(x+10,y+10),(255,0,0),-1)
    
    
    cv2.imwrite('Corner_detected_rectangles.png', img)
    cv2.imshow("goodFeaturesToTrack Corner Detection", img)
    cv2.waitKey()
    cv2.destroyAllWindows()
    
  • 처리 후



  • 참고

    좋은 웹페이지 즐겨찾기