使用opencv中匹配点对的坐标提取方式


Posted in Python onJune 04, 2020

在opencv中,特征检测、描述、匹配都有集成的函数。vector<DMatch> bestMatches;用来存储得到的匹配点对。那么如何提取出其中的坐标呢?

int index1, index2;
 for (int i = 0; i < bestMatches.size(); i++)//将匹配的特征点坐标赋给point
 {
 index1 = bestMatches.at(i).queryIdx;
 index2 = bestMatches.at(i).trainIdx;
 
 cout << keyImg1.at(index1).pt.x << " "
    << keyImg1.at(index1).pt.y << " "
    << keyImg2.at(index2).pt.x << " "
    << keyImg2.at(index2).pt.y << endl;
 }

补充知识:OpenCV 如何获取一个连通域中的所有坐标点

使用opencv中匹配点对的坐标提取方式

#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
 
int main(int argc, char* argv[])
{
    IplImage* img;
    img = cvLoadImage("D:\\OOTT\\WEEK5\\2.png");
    IplImage* gray = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
    cvCvtColor(img,gray,CV_BGR2GRAY);
    cvThreshold(gray,gray,128,255,CV_THRESH_BINARY);
    CvMemStorage* storage = cvCreateMemStorage();
    CvSeq * first_contour = NULL;
    int Ncontour = cvFindContours(gray,storage,&first_contour,sizeof(CvContour),CV_RETR_LIST); 
    //Ncontour为cvFindContours函数返回的轮廓个数
    for(CvSeq* c = first_contour;c!= NULL;c=c->h_next)
    { 
    //    cvDrawContours(img,c,cvScalar(255,255,0),cvScalar(255,0,255),0,2,8);
        cvNamedWindow("contours",CV_WINDOW_AUTOSIZE);
    //    cvShowImage("contours",img);
        for(int k = 0;k <c->total;++k)
        {
            CvPoint* p = CV_GET_SEQ_ELEM(CvPoint,c,k);
            printf("(%d,%d)\n",p->x,p->y);
 
        }    
        CvRect rect;
        rect = cvBoundingRect(c,0);
        cvFloodFill(img,cvPoint(img->width/2,img->height/2),cvScalar(255,255,255),cvScalar(20),cvScalar(20),NULL,4,NULL);
       cvShowImage("contours",img); 
        
        int Num[500][500];
        for (int i=0;i<(img->height-5);i++)
            for (int j=0;j<(img->width-5);j++)
            {
                CvScalar S0;
                S0=cvGet2D(img,i,j);
                if(S0.val[0] == 255)
                    Num[i][j]=1;
                else
                    Num[i][j]=0;
         printf("(%d,%d)\n",i,j);
            }
 
    }
    cvWaitKey(0);
    cvReleaseImage(&img);
    cvReleaseImage(&gray);
    cvDestroyWindow("contours");
    return 0;
}

以上这篇使用opencv中匹配点对的坐标提取方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python的re模块应用实例
Sep 26 Python
Python中使用PIPE操作Linux管道
Feb 04 Python
在Python中使用matplotlib模块绘制数据图的示例
May 04 Python
python查询mysql,返回json的实例
Mar 26 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
Python日志模块logging基本用法分析
Aug 23 Python
python用post访问restful服务接口的方法
Dec 07 Python
Python中的上下文管理器相关知识详解
Sep 19 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 Python
python unittest单元测试的步骤分析
Aug 02 Python
python机器学习实现oneR算法(以鸢尾data为例)
Mar 03 Python
Python实现计算图像RGB均值方式
Jun 04 #Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
Jun 04 #Python
Python flask框架实现浏览器点击自定义跳转页面
Jun 04 #Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 #Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 #Python
Python使用Matlab命令过程解析
Jun 04 #Python
Python flask框架端口失效解决方案
Jun 04 #Python
You might like
php 获取全局变量的代码
2011/04/21 PHP
php HandlerSocket的使用
2011/05/02 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
laravel入门知识点整理
2020/09/15 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
python 异或加密字符串的实例
2018/10/14 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
Python list运算操作代码实例解析
2020/01/20 Python
利用python实现汉诺塔游戏
2021/03/01 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
英国鞋网:Rubber Sole
2020/03/03 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
编辑找工作求职信分享
2014/01/03 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
三方股东合作协议书
2014/10/28 职场文书
社区活动总结
2015/02/04 职场文书
遗失说明具结保证书
2015/02/26 职场文书
具结保证书范本
2015/05/11 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
大学生党课心得体会
2016/01/07 职场文书
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
海弦WR-800F
2022/04/05 无线电