歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> OpenCV中用Sobel算子進行邊緣檢測

OpenCV中用Sobel算子進行邊緣檢測

日期:2017/3/1 10:26:38   编辑:Linux編程

參數:

workImg:當前工作圖像(全局);

img3:Sobel_edge結果;

m_imagetype:圖像類型(全局);

  1. OnEdgedetSobel()
  2. {
  3. IplImage *img = cvCreateImage( cvGetSize(workImg), IPL_DEPTH_16S, 1);
  4. if(workImg->nChannels==3)
  5. OnColorToGray();
  6. //img=workImg;
  7. imageClone(workImg,&img);
  8. cvFlip(img);
  9. IplImage *img2 = cvCreateImage( cvGetSize(img), IPL_DEPTH_16S, 1);//當輸入圖像是 8 位的,要求輸出圖像是 16 位的
  10. IplImage *img3 = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 1);
  11. cvSobel( img, img2, 1, 0);
  12. cvConvertScaleAbs(img2,img3,1,0);
  13. cvReleaseImage(&img);
  14. cvReleaseImage(&img2);
  15. cvFlip(img3);
  16. m_dibFlag=imageReplace(img3,&workImg);
  17. m_ImageType=1;
  18. Invalidate();
Copyright © Linux教程網 All Rights Reserved