OpenCV에서 입력과 출력에 사용되는 프록시 클래스이다. 다음과 같이 OutputArray는 InputArray를 상속 받아서 만들어진 객체이고, IunputOutputArray는 OutputArray를 상속 받아서 만들어진 객체이다. 때문이 이들 간에는 상속 관계에
주어진 이름의 창의 위치를 x, y 좌료로 이동시키는 함수이다.주어진 이름의 창의 크기를 조정하는 함수이다. 창 생성시 WINDOW_NORMAL 속성으로 생성되어야 하며, imshow() 함수보다 나중에 호출 되어야 정상적으로 동작한다.키 입력을 대기하는 함수로 프로그
영상 데이터를 다른 영상 데이터에 복사해서 그대로 붙여넣는다. mask 인자를 통해 0이 아닌 영역만 선택적으로 붙여 넣기가 가능하다.
OpenCV는 기본적으로 영상을 다루는 라이브러리이다. 때문에 영상을 시각화 해야하는 경우가 많은데 이때 창을 띄우는 방법이다.이미지 파일을 Mat 객체로 불러온 다음 imShow()로 이미지를 창으로 띄우는 방법이다.
OpenCV에서는 카메라 혹은 동영상으로부터 프레임(Frame)을 받아오는 작업을 VideoCapture 클래스 하나로 처리한다. VideoCapture의 객체는 영상 파일의 경로 혹은 장치 번호로 초기화 하며, fream = Read(); 함수 혹은 cap >> fr
공통 사항 선의 두께를 의미하는 thickness의 값을 -1로 하면 도형의 색을 채운다. 다만 polyline()의 경우 fillPoly() 함수를 이용해서 도형을 채워야 한다. 선의 종류(LINE_TYPE)는 다음과 같이 정의되어 있다. 직선 화살표 마커
영상 처리에서 흑백 영상이 많이 사용된다. 그 이유는 과거 알고리즘이 흑백 영상을 기준으로 개발 되었기 때문에다. 또한 흑백 영상을 사용하면 메모리 사용량을 줄이고 연산 속도를 크게 높일 수 있는데 이는 픽셀 당 발기 정보 하나만 가지고 있기 때문이다.화소 처리는 한
두 영상의 같은 위치에 픽셀을 더하는 연산 방법이다. 픽셀의 최대값(255)를 넘어가는 경우에 포화 연산을 처리하여야 한다.$$\\text{dst} = \\text{taturate}(src1(x,y) + src2(x,y))$$두 영상의 같은 위치에 픽셀을 빼는 연산 방
필터링이란 단어 뜻 그대로 필요한 부분을 취하기 위하여 필요없는 부분을 걸러내는 작업을 의미한다. 영상 데이터에서의 필터링 방법은 블러링, 샤프닝, 잡음 제거, 에지 검출 등이 이에 해당한다.푸리에 변환(Fourier transform)을 통해 영상을 주파수 공간으로
날카롭지 않은 (Unsharp; Blur) 영상을 이용해서 날카로운(Sharp) 영상을 생성하는 방법이다. 정리하면 블러된 영상을 원본 영상에서 빼면 날카로운 부분만 남게된다. 이 영상을 다시 원본 영상에 더하면 원본 영상은 보다 날카로운 영상이 된다. $$dst =
영상 데이터의 잡음은 픽셀 값에 원하지 않는 랜덤한 값이 추가되는 형태이다. 카메라에서 광학 신호를 전기적 신호로 변환하는 과정에서 센서에 잡음이 추가될 수 있다.영상의 잡음은 크게 두 종류로 왼쪽 사진과 같이 흰색 혹은 검은색 점이 찍히는 잡음을 소금 그리고 후추 잡
트랙바를 생성하는 클래스이다. 다음과 같은 인자로 정의되어 있으며, 동작 상태에 따라 1(정상)과 0(비정상)을 반환한다.트랙바를 움직이면 출력된 이미지의 밝기가 변화한다.마우스 이벤트 종류는 다음과 같이 정의되어 있다. MouseEventFlags의 경우 2진수 비트
영상을 구선하는 픽셀의 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업이다. 전처리, 영상 접합, 왜곡 제거 등이 이에 해당한다.영상의 변환 방법은 크게 두 가지로 나눠진다. 첫 번째로 원본 영상의 직선 형태를 변환 후에도 직선으로 유지하는 형태의 변환이다. 두 번
영상 반전 변환 흑백 영상 변환 색 변환 함수 HSV 색 공간 Hue, Satutation, Value를 이용해서 색을 표현하는 방법이다.
엣지는 영상에서 픽셀의 밝기가 급격하게 변하는 부분을 의미한다. 일반적으로 객체의 경계를 의미한다. 보통 기울기(Gradient)를 이용해서 엣지를 찾는다. 기울기는 1차 미분(1st derivative)를 이용한다.사람의 눈으로는 객체의 경계를 쉽게 찾을 수 있지만
영상의 이진화(Binarization) 영상의 픽셀값은 0 또는 255(1)로 변환하는 연산을 의미한다. 배경이나 객체, 관심 영역과 관심이 없는 영역을 나누기 위한 방법으로 사용된다. 흑백 영상의 이진화 임계값(Threshold)을 이용한 간단한 이진화 방법을 사용
영상을 형태학적인 측면에서 다루는 방법으로 이진 영상의 잡음을 제거하거나, 형태를 변형하는 방법이다. 외곽선 검출 혹은 레이블링을 수행하기 전에 전처리 과정으로 사용된다.모폴로지 연성의 결과를 결정하는 커널 혹은 마스크를 의미한다.침식 연상은 객체 외각을 깍아내는 형태
객체 단위 분석 이진 영상의 형태로 객체를 분할해서 객체의 위치 크기 및 모양들을 분석하는 방법이다. 레이블링(Connected compoent labeling) 영역 기반의 모양 분석 방법으로 서로 연결되어 있는 픽셀에 고유한 고유한 번호를 지정하여 객체에 대한
입력 영상에서 부분 영상 위치를 찾는 방법이다. 템플릿: 전체 영상 내에서 찾고자 하는 작은 이미지원본 영상 위를 템플리 이미지를 가지고 슬라이딩 하면서 유사도 혹은 비유사도를 구한다. 템플릿 이미지의 중심이 원본 영상과의 유사도가 되고 이미지로 표현하면 우상단의 이미
코너의 경우 평탄한 영역이나 엣지 영역에 비해 변별력이 높다. 특히 이동이나 회전 변화에 강인하지만 크기 변화에는 취약한 특지을 갖는다.객체를 보는 크기에 따라 코너가 엣지가 될 수 있다(크기 변화에 민감). 다양한 크기에 대한 코너를 확인하면, 크기 변화에 강인한 특
사격형 형태의 필터를 이용하여 얻은 특징들을 의미한다. 흰색 영역의 합에서 검정색 영역의 픽셀값을 뺀 결과 값을 추출한다.적분 영상(Integral image)를 이용해서 빠르게 계산이 가능하다.week classifier를 모아서 성능을 향상시키는 방법이다. 캐스케이
영상의 지역적 그래디언트 방향 정보를 특징 벡터로 사용하여 영상 내의 객체를 찾는 방법이다. 입력 영상에서 원하는 객체에 대한 영역을 자르고 크기를 줄여 원하는 영역만 잘라낸다.잘라낸 객체의 영역을 8x8 크기의 셀로 나눠 각 셀 안에서 그래디언트를 계산한다.방향에 대
Net 클래스네트워크 불러오기신경망의 입력 정의하기신경망 입력 설정하기순방향 전파하기pytorch를 이용해서 데이터를 학습하고 학습된 모델을 mnist.onnx 파일로 저장한다.
여러 개의 CPU, GPU, DSP 등의 프로세서로 이루어진 이종 플랫폼에소 동작하는 프로그램 코드를 작성하기 위한 개방형 범용 병렬 컴퓨팅 프레임워크를 의미한다.Cuda가 없는 시스템에서도 하드웨어 가속을 통한 빠른 처리가 가능하다.