본문 바로가기
IT/OpenCV

반전영상

by Jang HyunWoong 2014. 12. 19.

화소값을 이용해서 뺄셈 계산으로 반전 영상 만들기

 

8비트 영상에서 최대값이 255이므로 s=255-r로 반전 영상을 계산할 수 있다. 

 

 

  1. #include "cv.h"
  2. #include "highgui.h"
  3. int main()
  4. {
  5. IplImage *srcImage;
  6. if((srcImage = cvLoadImage("lena.jpg", CV_LOAD_IMAGE_GRAYSCALE)) == NULL)
  7. return -1;
  8. IplImage *dstImage;
  9. dstImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 1);
  10. int x, y;
  11. double r, s;
  12. for(y=0; y<srcImage->height; y++)
  13. {
  14. for(x=0; x<srcImage->width; x++)
  15. {
  16. r = cvGetReal2D(srcImage, y, x);
  17. s = 255.0 - r;
  18. cvSetReal2D(dstImage, y, x, s);
  19. }
  20. } // for문으로 y=0부터 x좌표를 하나하나 so 한줄 한줄 변환시켜가는 것이다.
  21. cvNamedWindow("srcImage", CV_WINDOW_AUTOSIZE);
  22. cvShowImage("srcImage", srcImage);
  23. cvNamedWindow("dstImage", CV_WINDOW_AUTOSIZE);
  24. cvShowImage("dstImage", dstImage);
  25.  
  26. cvWaitKey(0);
  27. cvDestroyAllWindows();
  28. cvReleaseImage(&srcImage);
  29. cvReleaseImage(&dstImage);
  30. return 0;
  31. }

 

결과




원본

 

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