查找边界

#ifdef _CH_
#pragma package <opencv>
#endif

#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cvcam.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")

#include <cv.h>
#include <cvcam.h>
#include <cxcore.h>
#include <highgui.h>

void main()
{
 IplImage *pImg=NULL;
 IplImage *pContourImg=NULL;

 CvMemStorage *storage=cvCreateMemStorage(0);
 CvSeq *contour=NULL;

 int mode=CV_RETR_CCOMP;
 //载入图像,强制转化为灰度
 pImg=cvLoadImage("1.jpg",CV_LOAD_IMAGE_GRAYSCALE);
 assert(pImg!=NULL);

 cvNamedWindow("Show_Src",CV_WINDOW_AUTOSIZE);
 cvShowImage("Show_Src",pImg);

 //cvWaitKey();
 pContourImg=cvCreateImage(
    cvGetSize(pImg),
    IPL_DEPTH_8U,
    3);
 //复制pImg,并把它转还为灰度图
 cvCvtColor(pImg,pContourImg,CV_GRAY2BGR);

 //执行查找边缘操作
 cvFindContours(
  pImg,
  storage,
  &contour,
  sizeof(CvContour),
  mode,
  CV_CHAIN_APPROX_SIMPLE,
  cvPoint(2,2));

 //在pContourImg上画出边界
 cvDrawContours(pContourImg,
       contour,
       CV_RGB(0,0,255),
       CV_RGB(255,0,0),
       2,
       2,
       8
       );

 //显示查找结果
 cvNamedWindow("Show_Dst",CV_WINDOW_AUTOSIZE);
 cvShowImage("Show_Dst",pContourImg);

 cvWaitKey();

 //释放资源
 cvReleaseImage(&pImg);
 cvReleaseImage(&pContourImg);
 cvDestroyWindow("Show_Src");
 cvDestroyWindow("Show_Dst");

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值