opencv椭圆检测识别并画出轮廓

上传人:碎****木 文档编号:220861800 上传时间:2021-12-09 格式:DOCX 页数:4 大小:14.57KB
返回 下载 相关 举报
opencv椭圆检测识别并画出轮廓_第1页
第1页 / 共4页
opencv椭圆检测识别并画出轮廓_第2页
第2页 / 共4页
opencv椭圆检测识别并画出轮廓_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《opencv椭圆检测识别并画出轮廓》由会员分享,可在线阅读,更多相关《opencv椭圆检测识别并画出轮廓(4页珍藏版)》请在金锄头文库上搜索。

1、百度文库 - 让每个人公平地提升自我*#include “stdafx.h“ #include “cv.h“ #include “highgui.h“using namespace cv;using namespace std; /标示符的可见范围CvPoint2D32f GetCPoint(IplImage* imageFg,int maxX); void FitEllipseBlob(IplImage* imageFg);int main( int argc, char* argv )IplImage* pImg; /声明 IplImage 指针/载入图像pImg = cvLoadImag

2、e( “C:UsersBBDesktopbecOPENCV 椭圆拟合定位椭圆中心点以及重心法定位程序OPENCV 椭圆拟合定位椭圆中心点以及重心法定位程序特征中心点提取误差分析image.bmp“, 1);/此处的argc=2 是否需要改成argc=1?我改了之后才能运行成功。求大牛解惑 / wmzzzz : 在“属性“|“debug“|里的 command arguments 里参加参数 (一个路径:要翻开的文件路径) 这时 argc=2 就合理了.可以试试多加几个int pointX = 0;for (int i=0;iwidth,pImg-height),IPL_DEPTH_8U,1);

3、IplImage*m_imageBw= cvCreateImage(cvSize(pImg-width,pImg-height),IPL_DEPTH_8U,1);cvCvtColor(pImg,m_imageGray,CV_RGB2GRAY); cvThreshold(m_imageGray,m_imageBw,128,255,CV_THRESH_BINARY); CvPoint2D32f pointXX;float XXX,YYY;for (int i = 0;i19;i+)4pointX=60*i+60;pointXX = GetCPoint(m_imageBw,pointX); XXX=

4、pointXX.x;YYY=pointXX.y;coutXXX“YYYendl;coutendl; coutendl; coutendl; coutendl; coutendl;FitEllipseBlob(m_imageBw);cvNamedWindow( “Image“, 1 );/创立窗口cvShowImage( “Image“, m_imageBw );/显示图像cvSaveImage(“image.bmp“,pImg);cvWaitKey(0); /等待按键cvDestroyWindow( “Image“ );/销毁窗口cvReleaseImage( &pImg ); /释放图像re

5、turn 0;CvPoint2D32f GetCPoint(IplImage* imageFg,int maxX)CvPoint2D32f point;double Xsum=0,Ysum=0,Sum=0; CvScalar Value;for (int j=0;jheight;j+)for (int i= maxX-60;ih_next)int i;int count= cont-total;/轮廓个数CvPoint2D32f center;CvSize size;/*个数必需大于 6,这是cvFitEllipse_32f 的要求if (count6)continue;/安排内存给点集Poi

6、ntArray = (CvPoint *)malloc(count*sizeof(CvPoint);PointArray2D32f = (CvPoint2D32f*)malloc(count*sizeof(CvPoint2D32f);/安排内存给椭圆数据box = (CvBox2D32f *)malloc(sizeof(CvBox2D32f);/得到点集这个方法值得借鉴 cvCvtSeqToArray(cont,PointArray,CV_WHOLE_SEQ);/将 CvPoint 点集转化为CvBox2D32f 集合for (i=0;icenter.x); center.y = cvRound(box-center.y);size.width = cvRound(box-size.width*0.5); size.height = cvRound(box-size.height*0.5); box-angle = -box-angle;XXXX=center.x;YYYY=center.y;coutXXXX“YYYYendl;free(PointArray); free(PointArray2D32f); free(box);cvShowImage(“Result“,image04);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号