화소값을 이용해서 뺄셈 계산으로 반전 영상 만들기
8비트 영상에서 최대값이 255이므로 s=255-r로 반전 영상을 계산할 수 있다.
- #include "cv.h"
- #include "highgui.h"
- int main()
- {
- IplImage *srcImage;
- if((srcImage = cvLoadImage("lena.jpg", CV_LOAD_IMAGE_GRAYSCALE)) == NULL)
- return -1;
- IplImage *dstImage;
- dstImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 1);
- int x, y;
- double r, s;
- for(y=0; y<srcImage->height; y++)
- {
- for(x=0; x<srcImage->width; x++)
- {
- r = cvGetReal2D(srcImage, y, x);
- s = 255.0 - r;
- cvSetReal2D(dstImage, y, x, s);
- }
- } // for문으로 y=0부터 x좌표를 하나하나 so 한줄 한줄 변환시켜가는 것이다.
- cvNamedWindow("srcImage", CV_WINDOW_AUTOSIZE);
- cvShowImage("srcImage", srcImage);
- cvNamedWindow("dstImage", CV_WINDOW_AUTOSIZE);
- cvShowImage("dstImage", dstImage);
- cvWaitKey(0);
- cvDestroyAllWindows();
- cvReleaseImage(&srcImage);
- cvReleaseImage(&dstImage);
- return 0;
- }
결과
원본
s=255-r 계산 후 반전된 영상
반응형
'IT > OpenCV' 카테고리의 다른 글
컨볼루션 convolution(회선) 필터링 기본 (0) | 2014.12.19 |
---|---|
OpenCV 함수 정리 (1) | 2014.12.19 |
cvLUT를 사용한 반전영상 (0) | 2014.12.19 |
영상을 행렬로, 행렬을 영상으로... (0) | 2014.12.19 |
커널 Kernel in Image processing (0) | 2014.12.19 |