• Open Source Computer Vision Library

Canny边缘检测

Wikipedia,自由的百科全书

(修订版本间差异)
18:45 2008年12月24日的修订版本
Shiqi yu (Talk | 贡献)

← Previous diff
13:52 2008年12月29日的修订版本
Ollydbg23 (Talk | 贡献)
添加函索说明链接
Next diff →
第 1行: 第 1行:
 +=C语言版本=
来自于仕琪的讲稿[http://fsa.ia.ac.cn/?q=act17 《使用OpenCV进行图像处理》]中的例程 来自于仕琪的讲稿[http://fsa.ia.ac.cn/?q=act17 《使用OpenCV进行图像处理》]中的例程
<source lang="c">/************************************************** <source lang="c">/**************************************************
第 55行: 第 56行:
}</source> }</source>
 +=函数说明=
 +请参见
 +[[Cv图像处理#Canny]]
= Python版本 = = Python版本 =

13:52 2008年12月29日的修订版本

C语言版本

来自于仕琪的讲稿《使用OpenCV进行图像处理》中的例程

/**************************************************
 * cvCanny:Canny边缘检测
 **************************************************/
 
/***********************************************************************
 * OpenCV example
 * By Shiqi Yu 2006
 ***********************************************************************/
 
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
 
int main( int argc, char** argv )
{
  //声明IplImage指针
  IplImage* pImg = NULL; 
  IplImage* pCannyImg = NULL;
 
  //载入图像,强制转化为Gray
  if( argc == 2 && 
      (pImg = cvLoadImage( argv[1], 0)) != 0 )
    {
 
      //为canny边缘图像申请空间
      pCannyImg = cvCreateImage(cvGetSize(pImg),
					  IPL_DEPTH_8U,
					  1);
      //canny边缘检测
      cvCanny(pImg, pCannyImg, 50, 150, 3);
 
      //创建窗口
      cvNamedWindow("src", 1);
      cvNamedWindow("canny",1);
 
 
      //显示图像
      cvShowImage( "src", pImg );
      cvShowImage( "canny", pCannyImg );
 
      cvWaitKey(0); //等待按键
 
      //销毁窗口
      cvDestroyWindow( "src" );
      cvDestroyWindow( "canny" );
      //释放图像
      cvReleaseImage( &pImg ); 
      cvReleaseImage( &pCannyImg ); 
 
      return 0;
    }
 
  return -1;
}

函数说明

请参见 Cv图像处理#Canny

Python版本

# -*- coding:utf-8 -*-
###########################################################
# OpenCV example
#
# cvCanny:Canny边缘检测
#
# By ChaiShushan 2008
###########################################################
 
import sys
 
# 导入OpenCV模块
 
from opencv.cv import *
from opencv.highgui import *
 
if __name__ == '__main__':
 
    if len(sys.argv) == 2:
 
        # 载入图像,强制转化为Gray
 
        pImg = cvLoadImage(sys.argv[1], 0)
        if not pImg: sys.exit(-1)
 
        # 为canny边缘图像申请空间
 
        pCannyImg = cvCreateImage(cvGetSize(pImg), IPL_DEPTH_8U, 1)
 
        # canny边缘检测
 
        cvCanny(pImg, pCannyImg, 50, 150, 3)
 
        # 创建窗口
 
        cvNamedWindow("src", 1)
        cvNamedWindow("canny",1)
 
        # 显示图像
 
        cvShowImage( "src", pImg )
        cvShowImage( "canny", pCannyImg )
 
        # 等待按键
 
        cvWaitKey(0); 
 
        # 销毁窗口
 
        cvDestroyWindow( "src" )
        cvDestroyWindow( "canny" )
 
        # 释放图像
 
        cvReleaseImage( pImg )
        cvReleaseImage( pCannyImg )
 
        sys.exit(0)

注: Python版本由chai2010改写.

Views
Personal tools