Study/ML | DL

Study/ML | DL

[Python] OpenCV를 이용한 이미지/영상 처리 - 이미지 윤곽선(Image Contours)

참고 글 [Python] OpenCV를 이용한 이미지/영상 처리 - Adaptive Threshold, otsu algorithm Threshold 이전 글 [Python] OpenCV를 이용한 이미지/영상 처리 - 이진화(Binarization), TrackBar 참고 글 [Python] OpenCV를 이용한 이미지/영상 처리 - 동영상 및 카메라 출력 이전글 1. OpenCV를 이용한 이미지/영상 처리 - seoyuun22.tistory.com 18. 윤곽선 (Image Contours) 윤곽선(Contours)은 동일한 색 또는 동일한 강도를 가지고 있는 영역의 경계선을 연결한 선으로 대상의 외형을 파악하는데 유용하게 사용된다. 윤곽선을 그리는 과정 윤곽선을 그릴 때는 원본 이미지의 훼손을 방지하기..

Study/ML | DL

[Python] OpenCV를 이용한 이미지/영상 처리 - 이미지 경계선

17. 경계선 가장자리(Edge)는 가장 바깥 부분의 둘레를 의미하며, 객체의 테두리로 볼 수 있다. 이미지 상에서 가장자리는 전경과 배경이 구분되는 지점이며, 전경과 배경 사이에서 밝기가 큰 폭으로 변하는 지점이 객체의 가장자리가 된다. 때문에 가장자리는 픽셀의 밝기가 급격하게 변하는 부분으로 간주할 수 있다. 가장 유명한 경계선을 감지하는 방법으로 Canny Edge Detection이 있고, 이 외에도 Sobel, Laplacian 방법이 있다. 이와 같은 경계선을 찾는 방법들은 아래와 같은 여러 단계의 알고리즘을 통해 경계를 찾아낸다. 1. Noise Reduction 이미지의 Noise를 제거한다. 이때 5X5의 가우시안 필터를 사용한다. 2. Edge Gradient Detection 이미지에..

Study/ML | DL

[Python] OpenCV를 이용한 이미지/영상 처리 - 모폴로지 변환(Opening & Closing)

참고 글 [Python] OpenCV를 이용한 이미지/영상 처리 - 모폴로지 변환(dilate, erode) 모폴로지 변환 (Morphological Transformation) Morphological Transformation은 이미지를 분할하여 단순화, 제거, 보정을 통해 형태를 파악하는 목적으로 사용한다. 일반적으로 binary나 grayscale image에 사용된다. seoyuun22.tistory.com 16. Opening & Closing Opening 열림 Opening은 erosion 후에 dilation을 적용한다. 열림을 적용하면 침식으로 인해 밝은 영역이 줄어들고 어두운 영역이 늘어난다. 여기서 줄어든 영역을 다시 복구하기 위해 팽창을 적용하면 반대로 어두운 영역이 줄어들고 밝은..

Study/ML | DL

[Python] OpenCV를 이용한 이미지/영상 처리 - 모폴로지 변환(dilate, erode)

모폴로지 변환 (Morphological Transformation) Morphological Transformation은 이미지를 분할하여 단순화, 제거, 보정을 통해 형태를 파악하는 목적으로 사용한다. 일반적으로 binary나 grayscale image에 사용된다. 사용하는 방법으로는 Dilation(팽창)과 Erosion(침식), 그리고 이 두 개를 조합한 Opening과 Closing이 있다. 14. Dilation 팽창 이미지 팽창은 이미지를 확장하여 작은 구멍을 채우는 작업이다. 즉 어떤 흰색영역의 외곽 픽셀 주변에 흰색을 추가하여 어두운 영역을 줄이고 밝은 영역을 넓힌다. 따라서 팽창은 노이즈 제거 후 줄어든 크기를 복구하고자 할 때 주로 사용한다. 팽창의 과정을 확인하기 위해 그림판에서 ..

Study/ML | DL

[Python] OpenCV를 이용한 이미지/영상 처리 - Adaptive Threshold, otsu algorithm Threshold

이전 글 [Python] OpenCV를 이용한 이미지/영상 처리 - 이진화(Binarization), TrackBar 참고 글 [Python] OpenCV를 이용한 이미지/영상 처리 - 동영상 및 카메라 출력 이전글 1. OpenCV를 이용한 이미지/영상 처리 - 이미지 출력 [Python] OpenCV를 이용한 이미지/영상 처리 - 이미지 출력 0. Open CV( seoyuun22.tistory.com 임계값 이전의 글에서 Trackbar를 이용해 임계값의 변화에 따라 변하는 이미지를 확인하는 과정에서 흑백처리를 했었다. 그렇다면 흑백처리 된 이미지에서 이진화할 때 흑과 백을 나누는 임계값은 무엇일까. 이를 알아보기 위해 아래와 같은 이미지를 준비한다. 위 이미지는 왼쪽에서 부터 차례대로 RGB값이 ..

Study/ML | DL

[Python] OpenCV를 이용한 이미지/영상 처리 - 이진화(Binarization), TrackBar

참고 글 [Python] OpenCV를 이용한 이미지/영상 처리 - 동영상 및 카메라 출력 이전글 1. OpenCV를 이용한 이미지/영상 처리 - 이미지 출력 [Python] OpenCV를 이용한 이미지/영상 처리 - 이미지 출력 0. Open CV(Computer Vision) 다양한 영상(이미지) / 동영상 처리에 사용되는 오픈소스 라 seoyuun22.tistory.com 13. 이진화(binarization) 이진화는 특정값을 기준으로 흰색과 검은색으로만 나누는 것이다.즉 흰색과 검은색만 가지는 바이너리(Binary) 이미지로 변형하는 과정을 이진화라고 한다. 먼저 이진화를 위해 이미지를 GRAYSCALE로 읽어온다. import cv2 img = cv2.imread("book.jpg", cv2...

Study/ML | DL

[Python] OpenCV를 이용한 반 자동 문서스캐너 구현하기2 - 반 자동 문서 스캐너 구현

이전 참고글 [Python] OpenCV를 이용한 반 자동 문서스캐너 구현하기1 - Mouse event Mini Project : 반 자동 문서 스캐너 구현하기 1. 마우스 이벤트 등록 이미지 변형 중에서 이미지의 특정 지점에 대한 좌표를 가져왔었다. 이 전까지는 그림판을 이용했다면 cv2의 다양한 마우스 이벤 seoyuun22.tistory.com 2. 반 자동 문서 스캐너 문서 스캐너를 구현하기 위해서 마우스 이벤트 정보를 저장하는 mouse_handler와 결과 이미지를 출력하는 show_resul라는 새로운 함수를 정의한다. Show result Show result는 이 전에 원근 이미지를 변형하는 과정을 함수로 나타낸 것이다. 다만 원 좌표는 mouse handler에서 리스트 형태로 받아오..

Study/ML | DL

[Python] OpenCV를 이용한 반 자동 문서스캐너 구현하기1 - Mouse event

Mini Project : 반 자동 문서 스캐너 구현하기 1. 마우스 이벤트 등록 이미지 변형 중에서 이미지의 특정 지점에 대한 좌표를 가져왔었다. 이 전까지는 그림판을 이용했다면 cv2의 다양한 마우스 이벤트의 종류를 이용해 좌표를 출력할 수 있다. cv2.EVENT_LBUTTONDOWN : 마우스 왼쪽 down cv2.EVENT_LBUTTONUP : 마우스 왼쪽 up cv2.EVENT_RBUTTONDOWN : 마우스 오른쪽 down cv2.EVENT_LBUTTONUP : 마우스 오른쪽 up cv2.EVENT_LBUTTONDBLCLK : 마우스 왼쪽 더블클릭 cv2.EVENT_RBUTTONDBLCLK : 마우스 오른쪽 더블 클릭 cv2.EVENT_MOUSEMOVE : 마우스 이동 이미지를 출력하기 전에..

Study/ML | DL

[Python] OpenCV를 이용한 이미지/영상 처리 - 이미지 변형(흑백, 흐림, 원근)

이전 참고글 [Python] OpenCV를 이용한 이미지/영상 처리 - 이미지 출력 0. Open CV(Computer Vision) 다양한 영상(이미지) / 동영상 처리에 사용되는 오픈소스 라이브러리이다. 이미지 처리는 이미지로부터 다양한 데이터를 수집하고 유용한 정보를 얻기 위해 이미지를 조작 seoyuun22.tistory.com 10 . 흑백 수많은 이미지 데이터에서도 불 필요하거나 정확하지 않은 부분이 있을 수 있다. 이러한 부분을 걸러내고 이미지로부터 원하는 결과물을 얻어내기 위해 전처리 하는 과정으로 이미지 변형 작업을 수행한다. 이 전에 이미 이미지를 불러오면서 흑백처리하는 과정은 했었다. 이번에는 이미지를 불러올 때 흑백처리를 하는 것이 아닌 불러온 이미지를 흑백처리하는 방법이란 점에서 ..

Study/ML | DL

[Python] OpenCV를 이용한 이미지/영상 처리 - 이미지 처리

7. 이미지 자르기 불러온 이미지에서 일부분을 잘라냈을 때 잘라낸 영역을 새로운 윈도우(창)에 표시하거나 기존 윈도우에 표시할 수 있다. 영역을 자를 때에는 함수를 이용하지 않고 자르는 지점의 위치로 나타낸다. crop = image[a:b, n:m] 영역을 잘라서 새로운 윈도우에 표시 먼저 사용할 이미지의 정보를 확인하면 다음과 같다. import cv2 img = cv2.imread("img.jpg") img.shape (391, 640, 3) 위의 이미지에서 세로 기준 100:400까지, 가로 기준 200:400까지 잘라 새 윈도우에 표시하면 다음과 같다. import cv2 img = cv2.imread("img.jpg") # 이미지 자르기 crop = img[100:200, 200:400] # ..

truthyun
'Study/ML | DL' 카테고리의 글 목록