linux提取ttf字体轮廓,OpenCV之图像轮廓检测及提取

OpenCV代码功能:检测并画出图像中的轮廓

主要函数:cvFindContours、cvDrawContours

#include

#include

#include

#include

void main()

{

int i=0;

int mode=CV_RETR_CCOMP;          //the mode of contours

int num_contours=0;

CvScalar ext_color,inn_color;

CvMemStorage*storage=cvCreateMemStorage(0);

CvSeq*contour=0;

IplImage*pimg=NULL;

IplImage*CTImg=NULL;

IplImage*src=cvLoadImage("test.bmp",-1);

pimg=cvCreateImage(cvGetSize(src),src->depth,1);

CTImg=cvCreateImage(cvGetSize(pimg),IPL_DEPTH_8U,3);

cvCvtColor(src,pimg,CV_BGR2GRAY);

cvNamedWindow("source",CV_WINDOW_AUTOSIZE);

cvNamedWindow("gray",CV_WINDOW_AUTOSIZE);

cvNamedWindow("contours",CV_WINDOW_AUTOSIZE);

cvShowImage("source",src);

//cvThreshold(pimg,pimg,200,250,CV_THRESH_BINARY);

cvErode(pimg,pimg,0,1);

cvDilate(pimg,pimg,0,1);

cvCanny(pimg,pimg,2,20,3);

//cvErode(pimg,pimg,0,2);

//cvDilate(pimg,pimg,0,1);

//Find the Contours

mode=CV_RETR_LIST;

num_contours=cvFindContours(pimg,storage,&contour,sizeof(CvContour),mode,CV_CHAIN_APPROX_NONE);

cout<

//Draw the Contours

for (;contour!=0;contour=contour->h_next)

{

inn_color=CV_RGB(rand()&255,rand()&255,rand()&255);

ext_color=CV_RGB(rand()&255,rand()&255,rand()&255);

cvDrawContours(CTImg,contour,ext_color,inn_color,1,2,8,cvPoint(0,0));

}

cvShowImage("gray",pimg);

cvShowImage("contours",CTImg);

cvWaitKey(0);

cvSaveImage("Contours.bmp",CTImg);

cvSaveImage("Canny.bmp",pimg);

cvReleaseImage(&pimg);

cvReleaseImage(&CTImg);

cvReleaseImage(&src);

cvReleaseMemStorage(&storage);

cvDestroyAllWindows();

}

效果图:

80ca503ee064cb0dcfc26d19e1537833.png 

0c9514eaa5dcde83f152b89b9fa12659.png 

40395a5aa1ebb7ac8628fd26eca52478.png

--------------------------------------分割线 --------------------------------------

--------------------------------------分割线 --------------------------------------

OpenCV的详细介绍:请点这里

OpenCV的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值