본문 바로가기

openCV21

[openCV] 공간 도메인 필터링 Spatial Filtering Spatial Filter를 사용하여 전처리를 하는 것 Spatial filters = spatial masks, kernels, templates, windows spatial filter의 개수에 따라 다양한 결과를 만들 수 있다. Averaging filter 특정한 픽셀 값을 이웃 픽셀들의 평균값으로 대체시키는 것이다. low pass filters라고 불리기도 한다. 랜덤 한 잡음들을 줄일 수 있는 장점이 있다. 영상이 흐릿해지는(블러링) 단점이 있다. Gaussian filter Mask size 마스크의 크기가 작으면 작을수록 작은 잡음들을 없앨 수 있다. 작은 물체를 블러 처리하고 싶으면 마스크의 크기를 줄이면 된다. 크기가 큰 마스크를 사용하면 계산량이 많.. 2020. 1. 18.
[openCV] 히스토그램 평활화 Histogram 히스토그램 = 도수 분포도 어떠한 영상의 intensity level이 [0-L-1] 일 때 k번째에 해당하는 히스토그램의 값은 영상 내에 k번째 bin에 해당하는 픽셀의 숫자로 결정이 된다. 히스토그램의 빈의 개수가 256개 일 때 제일 첫 번째 빈에 해당하는 값은 픽셀 값이 0인 픽셀의 개수로 결정이 된다. 히스토그램은 보통 정규화를 수행한다. 각각의 bin의 값을 영상을 구성하고 있는 전체 픽셀의 값으로 나눠준다. 또한 확률 함수로도 표현이 가능하다. 즉, 영상 내에 특정한 값을 가질 확률이 정규화된 히스토그램으로 표현이 된다는 뜻이다. 히스토그램을 계산할 때 bin의 개수를 잘 설정하는 것이 중요하다. Histogram equalization 히스토그램 평활화 일종의 전처리 방법.. 2020. 1. 18.
[openCV] 밝기 값 변환 Intensity transformation 밝기 값 변환 입력 영상의 픽셀들의 값을 mapping 함수를 통해 다른 값으로 mapping 시키는 것 Image negatives 반전 함수 이미지의 intensity level이 [0,L-1]일때 반전을 수행하면 s = L-1–r (s: output r: input) 이미지 반전은 어두운 영역의 디테일이 숨겨진 경우 육안으로 확인하기 좋다. Log transformation 로그 함수 s=c log(1+r) , c: constant, r: input, s: output (1+r) 의 로그를 취하는 이유는 입력영상이 가질 수 있는 값의 범위에 있다. 왜냐하면 입력 영상의 각 픽셀의 값은 0~255인데 log 0은 정의 되어있지 않으므로 +1을 해준다. 낮은.. 2020. 1. 18.
[openCV] 메모리 관리 및 픽셀 엑세스 openCV상에서 메모리 관리 방법은 두 가지가 있다. 1. shallow copy Mat은 header와 data 부분으로 구성되는데 shallow copy의 경우는 header에 포함되어 있는 데이터의 주소값만이 copy된다. ‘=’이라는 등호를 사용하여 copy copyTo라는 함수 사용 가능하다. (입력 매트릭스와 결과 매트릭스의 데이터 타입과 크기가 같으면 주소값만이 복사가 이루어지고 아니면 deep copy) 2. deep copy Clone() 함수를 사용하여 copy 데이터 변경 시 shallow copy와 다르게 deep copy를 수행하면 변경되지 않는다. 픽셀 접근 방법은 4가지가 있다. 1. by using at operator Image.at (WANT_ROW,WANT_COL) 안.. 2020. 1. 11.
[openCV] Drawing함수 Rectangle 사각형을 그리는 함수 Void rectangle(Mat &img,point pt1,point pt2,const scalar& color, int thickness=1,int lineType=8,int shift=0) -> 사각형의 양 꼭짓점의 좌표를 넣어준다 Shift : 보다 사각형을 정교하게 그리고 싶을 때 사용, 중요하지 않음 Void rectangle(Mat &img,Rect rec ,const scalar& color, int thickness=1,int lineType=8,int shift=0) Rect라는 데이터 구조 활용하여 사각형 정의 Rect(x_Lt,y_LT,width,height) Line/Circle Void line(Mat& img, Point pt1, Poin.. 2020. 1. 11.
[openCV] Mat연산자 컬러 공간 변환 void cvtColor(Mat src, Mat dst, int code, int dstCn=0) src는 입력 영상, dst는 출력 영상, code는 컬러 변환 코드, dstCn은 출력 영상의 채널 수이다. code는 CV_BGR2GRAY,VB_BGR2HSV,CV_BGR2YCrCb… 등으로 아래 표가 주요 컬러 변환 코드이다. 입력 영상(src) 변환 코드(code) 출력 영상(dst) BGR cv2.COLOR_BGR2GRAY GRAY GRAY cv2.COLOR_GRAY2BGR BGR BGR cv2.COLOR_BGR2HSV HSV HSV cv2.COLOR_HSV2BGR BGR BGR cv2.COLOR_BGR2YCrCb YCrCb YCrCb cv2.COLOR_YCrCb2BGR BGR im.. 2020. 1. 11.