openCV识别定位五个圆的标识物进行定位和位姿确定

将以下的五个圆的标识物贴在物体上,对物体进行定位和位姿确定




#include <iostream>


// 载入OpenCV头文件
#include "opencv2/opencv.hpp"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp> 
 
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include <opencv2/nonfree/nonfree.hpp>
#include <opencv2/legacy/legacy.hpp>
#include <opencv2/legacy/compat.hpp>
#include <vector>
using namespace std;
using namespace cv;


//vector<pair<int,int> >centers;
vector<Point2f> centers;
vector<double> longAxisCVec;


struct EllipsePara
{
CvPoint m_Pt;
CvSize m_size;
float m_angle;
};
vector<EllipsePara> Oval;


//Some defines we left out of the book


//void f( 
// IplImage* src, 
// IplImage* dst 
//
//{
// CvMemStorage* storage = cvCreateMemStorage(0);
// CvSeq* comp = NULL;
//
// cvPyrSegmentation( src, dst, storage, &comp, 4, 200, 50 );
// int n_comp = comp->total;
//
// for( int i=0; i<n_comp; i++ ) {
// CvConnectedComp* cc = (CvConnectedComp*) cvGetSeqElem( comp, i );
// // do_something_with( cc );
// }
// cvReleaseMemStorage( &storage );
//}


int main(int argc, char** argv)
{


cvNamedWindow("Example_pre", CV_WINDOW_AUTOSIZE);
cvNamedWindow("Example_post", CV_WINDOW_AUTOSIZE);  
cvNamedWindow("Example", CV_WINDOW_AUTOSIZE); 


const char* filename = "caise6.jpg";
IplImage* src= cvLoadImage(filename, 1);
IplImage* ddd = cvCreateImage( cvGetSize(src), src->depth, src->nChannels);
cvCopy(src,ddd);
/*cvZero(ddd);*/


if(!src) { printf("Couldn't seem to Open %s, sorry\n",argv[1]); return -1;}


cvShowImage( "Example_pre", src);


//IplImage* dst = cvCreateImage( cvGetSize(src), src->depth, src->nChannels);


//IplImage* dst = cvCreateImage( cvSize( src->width*2, src->height*2 ), src->depth, src->nChannels);//用于缩放图像


/*f( src, dst);*/


IplImage* dst = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);//创建目标图像  

cvCvtColor(src,dst,CV_BGR2GRAY);





cvSmooth(dst,dst,CV_GAUSSIAN,3,0,0,0);//模糊处理
cvThreshold( dst, dst, 100, 255, CV_THRESH_BINARY );//二值化

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值