使用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装饰器 免去调用父类构造函数的麻烦
May 18 Python
Python中使用PDB库调试程序
Apr 05 Python
Python计算一个文件里字数的方法
Jun 15 Python
python比较两个列表大小的方法
Jul 11 Python
Python实现读取字符串按列分配后按行输出示例
Apr 17 Python
简单介绍python封装的基本知识
Aug 10 Python
python 使用pdfminer3k 读取PDF文档的例子
Aug 27 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
Feb 07 Python
详解pandas赋值失败问题解决
Nov 29 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 Python
Django使用channels + websocket打造在线聊天室
May 20 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
浅析Jquery操作select
2016/12/13 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
Python字符串拼接六种方法介绍
2017/12/18 Python
python机器人行走步数问题的解决
2018/01/29 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
python3.4实现邮件发送功能
2018/05/28 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
简单了解python单例模式的几种写法
2019/07/01 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
电大毕业个人生自我鉴定
2014/03/26 职场文书
贷款委托书怎么写
2014/08/02 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP