영상처리 (9) 썸네일형 리스트형 영상처리 - 11. Histogram matching(Specification) 지난 시간에는 histogram equalization을 배웠다. 이번에는 이를 활용한 histogram specification을 배워보자. histogram matching이라고도 부른다. 원본 이미지의 histogram을 내가 원하는 histogram으로 specify하고 싶을 때 활용가능하다. 아래 천천히 방법을 따라가 보자. 1. 입력 영상 Equalization 첫번째로 입력 영상의 histogram을 생성한다. 그다음 원본(입력) 영상의 equalizaion을 수행한다. 2. 원하는 영상 equalization 이제 내가 원하는 히스토그램을 equalization한다. 이 히스토그램을 역평활화 한다. (inverse) 이렇게 만들어진 역평활화 값을 look-up table이라고 한다. *역 .. 영상처리 - 10. Histogram Equealization Histogram Equealization은 원본 이미지를 cumulative histogram으로 바꾼다음 normalization을 거쳐서 uniformly distributed histogram이 되도록 하는 것을 말한다. 첫번재로 히스토그램을 만든다. 그 다음 누적분포로 히스토그램을 변환한다. sum * 최대 intensity(7) / numOfPixels(16)하여 normalize한다. 반올림하여 새로운 new intensity를 구하면 다음과 같다. 0 -> 0, 1 -> 1, 2 -> 2, 3 -> 5, 4 -> 7, 5 -> 7, 6 -> 7, 7 -> 7, 이 원본이미지의 intensity를 위의 lookup table을 보고 변환한다. 이렇게 하면 이미지의 histogram을 넓게 분.. 영상처리 - 7. Egde Detection edge detection은 intensity가 급격하게 변하는 지점을 탐색하는 것이다. convolution으로 찾는다. ex) sobel mask edge detection을 수행하기 전에 보통 blurring등으로 noise를 제거한다. 인접 픽셀의 밝기 차이(값)가 크면 edge일 확률이 높다. edge를 판단하기 쉽게 하기 위해 gray scale이미지로 변환한다. 그 다음 선택한 마스크로 convolution을 수행한다. gray scale 이미지는 오로지 한 픽셀당 하나의 값이 밝기를 나타내기 때문에 픽셀 값이 특정 값 이상이면 edge로 파악하거나 인접 픽셀간의 차이가 크면 edge로 간주하여 색을 입히면 된다. 영상처리 - 6. Composition, Subtract 단순하게 두 이미지의 rgb 픽셀값을 더해주면 된다 buffer overflow, underflow를 조심하자 영상처리 - 5. Blur and Sharpen(with Convolution) blur, sharpen을 수행하기 위해 convolution을 먼저 알고 가자. mask를 정의하고 중앙의 pixel의 값을 업데이트 하는 방법을 말한다. window를 이동해가며 모든 pixel에 대해 convolution을 수행해서 원본 이미지를 blur처리하거나 더 날카롭게 대비를 줄 수 있다. 연속적으로 convolution을 적용하는 과정에서 주의할 점이 하나 있다. 위 그림처럼 이전 연산의 결과가 이후 연산에 반영되어서는 안되기 때문에 buffer를 이용해서 결과값을 따로 저장하도록 해야 한다. 물론 연산의 결과가 pixel이 표현할 수 있는 값의 범위를 넘지 않도록 해주어야 할 것이다. 변경할 (중앙) 필셀의 주위 픽셀값을 조정해서 원하는 효과를 내도록 할 수 있다. 크기는 얼마든지 5 b.. 영상처리 - 4. Mosaic 픽셀값들의 평균으로 각 픽셀들을 채워서 모자이크를 구현할 수 있다. 컬러 이미지의 경우는 R,G,B 각각의 value에 대한 average를 적용할 수 있다. 모자이크의 단위 길이를 사용했을 때 edge들은 handling이 필요하다 영상처리 - 3. Brightness 이미지를 밝게, 혹은 어둡게 하는 방법을 알아보자. 이미지가 흑백이건 컬러이건 밝기는 빛의 양으로 나타나고 빛의 양은 255에 가까울 수록 많아진다. for (DWORD y = 0; y GetPixelColor(x, y); if(nPlusMinus == 0) { newcolor.rgbRed = clamp(static_cast(color.rgbRed) + byModifyValue); newcolor.rgbGreen = clamp(static_cast(color.rgbGreen) + byModifyValue); newcolor.rgbBlue = clamp(static_cast(col.. 영상처리 - 2. Histogram Histogram은 이미지의 밝기의 분포를 그래프로 표현한 방식이다. x축이 색의 intensity(빛의 세기, 밝기, 0~255) y축이 픽셀 수 이다. 히스토그램을 보면 중간정도 밝기의 픽셀이 거의 없고 완전 어둡거나 완전 밝은 픽셀들이 많은 것으로 보인다. 즉 대비가 큰 이미지 임을 유추할 수 있다. 즉 어두운 이미지 일수록 히스토그램이 왼쪽으로 쏠리게 된다. 아래쪽 사진이 오른쪽 사진보다 constrast가 커져서 사진이 선명해진 것을 볼 수 있다. 이렇게 histogram equalization을 거치면 명암대비를 키울 수 있다. 컬러 이미지의 경우는 R, G, B 세가지의 채널을 가지고 있기 때문에 위처럼 픽셀의 intensity를 표현할 수 있다. for (DWORD y = 0; y < he.. 이전 1 2 다음