Open CV(6)
-
단일영상에서의 산술연산
영상에서 산술연산은 영상의 각 픽셀에 상수값을 더하거나 빼거나 곱하거나 나누는 연산으로 픽셀기반 처리 중에서 가장 기본적인 연산이다. 덧셈연산은 영상에 일정한 값을 더하는 연산으로 어두운 영상에 덧셈연산을 수행하면 밝은 영상이 얻어지고, 뺄셈연산은 영상에 일정한 값을 빼는 연산으로 밝은 영상에 뺄셈연산을 수행하면 어두운 영상이 얻어진다. 예를 들어, 원래 영상의 픽셀값이 50과 100인 경우 100을 더하면 150과 200이 되어 원래 영상보다 더욱 밝은 영상이 되고 반대로 150과 200인 픽셀값에 100을 빼면 50과 100이 되어 원래 영상보다 어두운 영상이 얻어진다. 곱셈연산은 영상에 일정한 값을 곱하는 연산으로 원영상에 상수를 곱하면 명암대비는 증가한다. 예를 들어, 원 영상의 픽셀값 10과 1..
2020.09.28 -
히스토그램 코드로 확인
OpenCV의 히스토그램에 대한 설명은 지난 글에서 작성이 되었는데, 이번에는 간단히 코드로 직접 확인을 해보자. 각자 사진을 1개씩 준비해 주시고~ cvLoadImage의 경로를 사진이 위치한 경로로 바꿔 주세요. #include #include void main () { IplImage*src_img=0; IplImage*imgHistogram=0; int bins = 256; int sizes[] = {bins}; float max_value = 0, min_value = 0; //ranges-grayscale 0 to 255 float xranges[] = {0, 255}; float*ranges[] = {xranges}; src_img=cvLoadImage("C:/Users/Documents/V..
2020.09.28 -
ROI(관심 영역) 설정과 영상 정보 출력
OpenCV로 ROI(관심 영역)설정하는 방법은 엄청 쉽습니다. cvLoadImage의 경로는 자신의 사진이나 영상데이터가 있는 곳으로 바꿔 주세요. #include #include using namespace cv; void main () { IplImage * Img = cvLoadImage ("C:/Users/Documents/Visual Studio 2010/Projects/openCV test/openCV test/images/tx.jpg"); IplImage * Img_copy = (IplImage*)cvClone(Img); cvSetImageROI(Img_copy, cvRect(100,150,140,100)); cvShowImage("Origin", Img); cvShowImage("ROI"..
2020.09.28 -
컬러 영상 출력해보기(channel, origin, width, height, widthStep, depth, imageSize, imageData)
각자 사진을 하나씩 준비하시고 아래 코드를 돌려 보도록 합시다. cvLoadImage에 자기가 저장한 사진의 경로로 변경해 주세요. #include #include #include void main() { IplImage*image; uchar*data; image=cvLoadImage("C:/Users/Documents/Visual Studio 2010/Projects/openCV test/openCV test/images/tx.jpg",-1); data=(uchar*)image->imageData; printf("number of channels = %d\n", image->nChannels); printf("origin =%d\n", image->origin); printf("width =%d\n"..
2020.09.28 -
히스토그램
히스토그램이란 영상의 픽셀값들에 대한 분포를 나타내는 그래프로 영상분석을 하는데 매우 유용하다. 히스토그램의 가로축은 영상의 픽셀값이고 세로축은 픽셀값에 대한 빈도수를 나타낸다. 예를들어 영상으로부터 히스토그램을 적성하기 위해서 도수분포표(frequency table)를 작성한 후 도수분포표로부터 히스토그램을 작성한다. 앞에서 히스토그램을 통하여 영상의 픽셀값들에 대한 분포를 알 수 있었다. 아래 그림은 히스토그램과 영상과의 관계를 보여주고 있다. (a)와 (b)는 밝은 영상과 어두운 영상에서 히스토그램을 보여주고 있고, (c)와 (d)는 명암대비에 따른 히스토그램을 보여주고 있다. (a)와 (b)에서처럼 어두운 영상일수록 작은 픽셀값 근처인 왼쪽 편에 픽셀값들이 많이 치우쳐있고 밝은 영상일수록 픽셀값이..
2020.09.28 -
컬러 영상
이차원 m x n 컬러영상에서 픽셀(i, j)의 k번째 원소는 일차원 영상에서 i x n x 채널수 + j x 채널 수 + k번째 픽셀에 해당된다. 여기서 i=0, ..., m-1이고, j=0, ..., n-1, k=0, 1, 2이다. 예를 들어, 5 x 5 컬러 영상에서 3행 3열의 첫 원소를 1차원 배열로 나타내보면, 흑백 영상은 1픽셀이 1바이트를 할당하지만, RGB컬러 영상은 1픽셀이 3채널로 구성됨으로 채널 당 1바이트씩 할당되므로 BGR순으로 픽셀 당 3바이트가 할당된다. 즉, 컬러 영상 배열은 (B0, G0, R0), (B1, G1, R1), ..., (Bn, Gn, Rn) 순서로 저장되어 있으며 (B0, G0, R0)는 첫 번째 픽셀의 파란색, 녹색, 빨간색을 나타낸다. 따라서 3행 3열의..
2020.09.28