파이썬 모듈 : OpenCV 가장자리 검출

2023. 3. 26. 16:53·파이썬/OpenCV
반응형
이번 글에서는 파이썬 cv2 모듈을 활용하여 이미지 가장자리를 검출하는 방법에 대해 알아보겠습니다.

Canny Edge Detection

Canny Edge Detection은 이미지에서 가장자리를 검출하는 알고리즘 중 가장 성능이 우수한 알고리즘 중 하나입니다. 이 알고리즘은 다음과 같은 과정으로 가장자리를 검출합니다.

  1. 이미지를 grayscale로 변환합니다.
  2. Gaussian blur를 적용하여 이미지의 noise를 제거합니다.
  3. Sobel filter를 사용하여 이미지의 gradient를 계산합니다.
  4. Non-maximum suppression을 사용하여 이미지의 가장자리를 추출합니다.
  5. Double threshold를 사용하여 추출한 가장자리 중 유효한 가장자리를 선택합니다.
  6. Hysteresis threshold를 사용하여 가장자리를 연결합니다.

아래 코드는 Canny Edge Detection을 사용하여 이미지의 가장자리를 검출하는 예제입니다.

import cv2
import numpy as np

# 이미지 읽어오기
img = cv2.imread('image.jpg')

# 이미지를 grayscale로 변환
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Gaussian blur 적용
gray_blurred = cv2.GaussianBlur(gray, (3, 3), 0)

# Canny Edge Detection 적용
edges = cv2.Canny(gray_blurred, 50, 150)

# 이미지 출력
cv2.imshow('image', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

위 코드에서 cv2.Canny() 함수는 Canny Edge Detection을 적용하여 이미지의 가장자리를 검출합니다. 이 함수는 low threshold와 high threshold를 인자로 받습니다. high threshold는 추출한 가장자리 중 실제 가장자리인 것으로 판단하는 threshold이며, low threshold는 high threshold보다 작은 값의 가장자리를 제거하기 위한 값입니다.


추가 정보

Canny Edge Detection 외에도 이미지 가장자리 검출을 위한 다양한 알고리즘이 존재합니다. 예를 들어, cv2.Sobel() 함수를 사용하여 이미지의 gradient를 계산하고 cv2.threshold() 함수를 사용하여 thresholding 처리를 할 수 있습니다. 이 외에도 cv2.Laplacian() 함수를 사용하여 Laplacian filter를 적용하여 이미지의 가장자리를 검출할 수 있습니다. 하지만 이러한 방법들은 Canny Edge Detection보다 정확도가 떨어지거나 다른 문제점이 있을 수 있습니다.


결론

이상으로 파이썬 cv2 모듈을 활용하여 이미지 가장자리 검출하는 방법에 대해 알아보았습니다. Canny Edge Detection은 이미지에서 가장자리를 검출하는 뛰어난 알고리즘 중 하나입니다. 이 알고리즘을 사용하여 이미지 분석 및 처리에 활용할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'파이썬 > OpenCV' 카테고리의 다른 글

파이썬 모듈 : OpenCV 동영상 캡쳐&녹화  (0) 2023.03.28
파이썬 모듈 : OpenCV 윤곽선 검출  (1) 2023.03.27
파이썬 모듈 : OpenCV 이미지 확대, 회전, 자르기  (1) 2023.03.25
파이썬 모듈 : OpenCV 읽기, 쓰기, 필터링  (0) 2023.03.24
이미지의 크기 변환 cv2.resize()  (0) 2022.11.17
'파이썬/OpenCV' 카테고리의 다른 글
  • 파이썬 모듈 : OpenCV 동영상 캡쳐&녹화
  • 파이썬 모듈 : OpenCV 윤곽선 검출
  • 파이썬 모듈 : OpenCV 이미지 확대, 회전, 자르기
  • 파이썬 모듈 : OpenCV 읽기, 쓰기, 필터링
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    ipcamera
    programmerlife
    list
    learntocode
    카페24리뷰
    카페24리뷰이관
    스마트스토어리뷰
    unity
    리뷰이관
    파이썬
    쇼핑몰리뷰
    리뷰관리
    devlife
    믈레코비타멸균우유
    셀레니움
    programming101
    cv2
    rtsp
    codingtips
    긴유통기한우유
    리스트
    C#
    codingcommunity
    상품 리뷰 크롤링
    유니티
    Python
    스크립트 실행 순서
    appdevelopment
    라떼우유
    스크립트 실행
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
파이썬 모듈 : OpenCV 가장자리 검출
상단으로

티스토리툴바