/20110418/CannyDetection/main.cpp

https://github.com/itrufeng/learncv · C++ · 46 lines · 31 code · 2 blank · 13 comment · 1 complexity · 982a6a439166cca5eca2ddd1b610ab5b MD5 · raw file

  1. /*c
  2. * main.cpp
  3. *
  4. * Created on: 2011-4-17
  5. * Author: itrufeng
  6. */
  7. #include <opencv/cv.h>
  8. #include <opencv/highgui.h>
  9. // aperture 光圈
  10. IplImage* canny(IplImage *inputImage,float lowThresh,float highThresh,float aperture){
  11. IplImage *outputImage;
  12. if(inputImage->nChannels>1){
  13. printf("not gray image.");
  14. }
  15. outputImage = cvCreateImage(cvGetSize(inputImage),IPL_DEPTH_8U,1);
  16. cvCanny(inputImage,outputImage,lowThresh,highThresh,aperture);
  17. return outputImage;
  18. }
  19. int main(int args,char *argv[]){
  20. IplImage *inputImage;
  21. IplImage *outputImage;
  22. cvNamedWindow("inputImage",CV_WINDOW_AUTOSIZE);
  23. cvMoveWindow("inputImage",100,100);
  24. cvNamedWindow("outputImage",CV_WINDOW_AUTOSIZE);
  25. cvMoveWindow("outputImage",200,200);
  26. //
  27. printf("%s",argv[1]);
  28. assert(argv[1]);
  29. // 只有灰度图才可以canny
  30. inputImage = cvLoadImage(argv[1],CV_LOAD_IMAGE_GRAYSCALE);
  31. cvShowImage("inputImage",inputImage);
  32. // float lowThresh 内部轮廓。数字越大越模糊
  33. // float highThresh //外部轮廓。数字越大越模糊
  34. // float aperture
  35. outputImage = canny(inputImage,100,100,3);
  36. cvShowImage("outputImage",outputImage);
  37. cvWaitKey(0);
  38. //
  39. cvDestroyWindow("outputImage");
  40. cvDestroyWindow("inputImage");
  41. cvReleaseImage(&outputImage);
  42. cvReleaseImage(&inputImage);
  43. return 0;
  44. }