본문 바로가기

728x90
반응형

AI/Computer Vision

(25)
[Computer Vision] 영상의 이진화와 모폴로지 👀 본 예제는 Window10의 VSCode, Python3.11.0로 작성되었습니다. 이진화(Binarization)영상의 이진화(Binarization)는 영상의 각 픽셀을 두 개의 부류로 나누는 작업이다. 이를 통해 영상의 주요 객체 영역과 배경 영역으로 나누거나 또는 영상에서 중요도가 높은 관심 영역과 그렇지 않은 비관심 영역으로 구분하는 용도로 이진화가 사용될 수 있다. 이진화가 진행되면 영상의 픽셀값은 0또는 255로 구성되며 흰색 또는 검은색 픽셀로만 구성된다.] 이진화를 하는 방법은 특정값을 기준으로 크면 255, 작은 경우 0으로 설정한다.import cv2if __name__ == "__main__": im = cv2.imread("test.png") shape = (int..
[Computer Vision] 컬러 영상 처리 👀 본 예제는 Window10의 VSCode, Python3.11.0로 작성되었습니다. 컬러 영상은 기본적으로 RGB 즉, 빨간색(Red), 녹색(Green), 파란색(Blue) 색상 성분의 조합으로 픽셀 값을 표현 한다. 그러나 OpenCV에서는 RGB 대신 BGR 색상 순서로 픽셀 값을 표현한다. 각 색상 성분은 0 ~ 255 사이의 값을 가질 수 있다.  OpenCV로 영상을 읽으면 Numpy 배열로 읽어지기 때문에, 각 픽셀의 값을 참조할 수 있다.이를 통해 영상의 색상을 변경할 수도 있다.import cv2if __name__ == "__main__": img = cv2.imread("test.png",cv2.IMREAD_COLOR) img = cv2.resize(img,(512,6..
[Computer Vision] 에지(Edge) 검출 👀 본 예제는 Window10의 VSCode, Python3.11.0로 작성되었습니다. 영상에서 에지(edge)는 한쪽 방향으로 픽셀 값이 급격하게 바뀌는 부분을 가리킨다. 즉, 어두운 영역에서 갑자기 밝아지거나 또는 반대로 밝은 영역에서 급격하게 어두워지는 부분을 에지라고 한다. 일반적으로 객체와 배경의 경계, 또는 객체와 다른 객체의 경계에서 에지가 발생한다. 이러한 에지를 찾아내는 작업은 영상 내 객체의 윤곽을 알아낼 수 있는 유용한 방법이며, 다양한 Computer Vision 시스템에서 객체 판별을 위한 전처리로 에지 검출이 사용된다. 기본적으로 영상에서 에지를 찾아내려면 픽셀 값의 변화율이 큰 픽셀을 선택해야 한다.수학에서 함수 또는 데이터의 변화율을 미분(derivative)이라고 한다.영..
[Computer Vision] 영상의 기하학적 변환 👀 본 예제는 Window10의 VSCode, Python3.11.0로 작성되었습니다. 영상의 기하학적(Geometric Transform)은 영상을 구성하는 픽셀의 배치 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업이다. 이전 필터링은 픽셀의 위치를 고정하고 픽셀의 값을 변경하였지만 기하학적 변환은 픽셀 값은 그대로 유지하면서 위치를 변경하는 작업이다. Affine Transform영상을 평행 이동시키거나 회전, 크기 변환 등을 통해 만들 수 있는 변환을 통칭한다. Affine 변환의 경우 직선 간의 길이 비율과 평행 관계가 그대로 유지된다.# transforms.pyimport cv2import numpy as npdef affineTransform(image:np.ndarray,matrix:..
[Computer Vision] Filtering 👀 본 예제는 Window10의 VSCode, Python3.11.0로 작성되었습니다. 필터(filter)라는 말은 무언가를 걸러 내구 일부만 통과시키는 장치를 의미한다. 영상처리에서 필터는 영상에서 원하는 정보만 통과시키는 역할을 한다.노이즈 제거SmoothingSharping 영상의 필터링은 보통 마스크(mask)라고 부르는 작은 행렬을 이용한다. 마스크는 필터링의 성격을 정의하는 행렬로 커널(kernel), 윈도우(Window)라고도 부르며, 경우에 따라서는 마스크 자체를 필터라고 부르기도 한다. 마스크는 직사각형 행렬 또는 정방형 행렬을 사용하기도 한다. 또한 필요하다면 다양한 형태의 마스크를 사용할 수 있다. 기본 필터링기본적인 필터링은 Numpy로 만든 행렬과 filter2D 함수를 사용한다..

728x90
반응형