본문 바로가기

It16

[openCV] 영상 분할 Image Segmentation 영상 분할 디지털 영상을 여러 개의 영역으로 분리하는 것이다. Object classification 입력 영상이 그레이스케일 영상이고 출력 영상은 바이너리 이미지 (0 혹은 255 값으로만 구성된 영상) Thresholding 가정 : 물체와 배경의 밝기 값이 다르다, 배경과 물체 영역 내에서는 밝기 값의 차이가 거의 없다. 적절한 threshold를 구하는 것이 중요하다. 잡음이 많아질수록 threshold를 구하기 어려워진다. 조명이 비균일할때 threshold를 구하기 어려워진다. Thresholding after applying smoothing thresholding 방법 Global thresholding : 동일한 threshold를 모든 픽셀에 적용하는 .. 2020. 1. 18.
[openCV] 컬러영상 처리 Color Processing 컬러 영상을 preprocessing 하는 것 Usage of HSI (or YCbCr 색공간으로 변환) 특정한 축이 intensity 값이 아니라 rgb 각 채널들이 합쳐져서 intensity 값을 표현하는 것이다. HSI or YCbCr 경우는 특정한 채널 값이 intensity 값을 의미한다. 따라서 HSI or YCbCr로 변환시킨 후 I값이나 Y값을 건드리는 방식으로 color processing을 수행한다. (HSI로 변환한 후에는 밝기값 변환이나 히스토그램 평활화, 평균값 필터 등을 수행할 수 있다.) Color Slicing : 특정한 hue 값을 제외하고 나머지 값들을 0으로 변환 Color Conversion : hue 값을 조정 Pseudo Colorin.. 2020. 1. 18.
[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.