Steady Blog

1장 OpenCV PointProcessing -1 본문

임시 자료/OpenCV

1장 OpenCV PointProcessing -1

우유먹고쑥 2015. 5. 6. 15:12

#include "opencv2/opencv.hpp"



//Gray로 변환


int main()

{

//파일로 부터 이미지를 얻기 위한 객체 -> 성공할 경우 IplImagePointer 반환

// -> 실패할 경우 NULL return

IplImage * img;

img = cvLoadImage("C:/Image/Gray_Test.jpg");


cvNamedWindow("test");


//이미지를 지정된 window에 나타냄

cvShowImage("test", img);



//사용자가 키를 누르기를 정해진 대기시간 만큼 기다린다.

cvWaitKey();


int x, y;


for (x = 0; x<img->width; x++)

for (y = 0; y<img->height; y++)

{

//색을 저장하는 데 사용하는 구조체 CvScalar

//CvScalr cvGet2D(IplImage*,y,x)

CvScalar s = cvGet2D(img, y, x);


//RGB 색상을 지정하는 배열이 거꾸로 되어있는게 핵심

int b = s.val[0];

int g = s.val[1];

int r = s.val[2];


//Gray는 각 픽셀마다 RGB가 모두 같은 이미지

int avg = (b + g + r) / 3;



//Gray로 색상을 변경하기 위한 코드

s.val[0] = avg;

s.val[1] = avg;

s.val[2] = avg;



//void cvSet2d(IplImage*,y,x,CvScalar)를 사용해서 색상을 변경

cvSet2D(img, y, x, s);

}


//주어진 이름에 해당하는 윈도우에 이미지를 보여줌

// - 부분적인 출력은 안됨

cvShowImage("test", img);

//사용자가 키를 누르기를 정해진 대기시간 만큼 기다린다.

cvWaitKey();


//주어진 이름에 해당하는 윈도우를 없앰

cvDestroyWindow("test");

//저장하고 있던 메모리 해제

cvReleaseImage(&img);


}






결과 값


   ===>  

                                 <변경 전>                                                        <변경 후>




'임시 자료 > OpenCV' 카테고리의 다른 글

잠시 긁어옴  (0) 2015.10.01