[OpenCV] 외곽선, 모서리 (엣지, edge) 추출 (Canny, 파이썬)
파이썬에서 OpenCV를 사용해서 그림 파일에서 외곽선 (모서리) 추출을 해보도록 하겠습니다. 엣지 (edge) 추출이라고도 합니다.
import cv2
import matplotlib.pyplot as plt
그림 = cv2.imread('그림파일.jpg')
그림RGB = cv2.cvtColor(그림, cv2.COLOR_BGR2RGB)
외곽선추출 = cv2.Canny(그림, 100, 200) # 100, 200은 변경 가능한 인자값입니다.
# 이 아래 부분은 그림을 화면에 출력하기 위한 부분으로, OpenCV 알고리즘과는 상관이 없습니다.
plt.subplot(1, 2, 1) # 1행 2열에서 1번째 열
plt.imshow(그림RGB)
plt.xticks([]) # x축 좌표 숨김
plt.yticks([]) # y축 좌표 숨김
plt.subplot(1, 2, 2) # 1행 2열에서 2번째 열
plt.imshow(외곽선추출, cmap='gray')
plt.xticks([]) # x축 좌표 숨김
plt.yticks([]) # y축 좌표 숨김
plt.show()
이렇게 하면 그림의 외곽선만 멋지게 추출되는 것을 보실 수 있습니다.
'개발, 전산, AI, IT' 카테고리의 다른 글
[Git] fatal: The remote end hung up unexpectedly (2) | 2018.05.18 |
---|---|
[OpenCV] 꼭짓점 (코너, corner) 추출 (cornerHarris, 파이썬) (0) | 2018.05.11 |
[OpenCV] 그림에서 RGB 채널을 각각 분리하기 (파이썬) (0) | 2018.05.11 |
[OpenCV] 그림 좌우 및 상하 반전시키기 (flip, 파이썬) (0) | 2018.05.11 |
[OpenCV] 그림을 일정 각도만큼 회전시키기 (getRotationMatrix2D, warpAffine, 파이썬) (2) | 2018.05.11 |