使用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通过websocket与js客户端通信示例分析
Jun 25 Python
Python中的闭包详细介绍和实例
Nov 21 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
Nov 01 Python
浅谈python迭代器
Nov 08 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
python保存数据到本地文件的方法
Jun 23 Python
python同步两个文件夹下的内容
Aug 29 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
js选择器全面解析
2016/06/27 Javascript
JavaScript类的写法
2016/09/17 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
从零学python系列之从文件读取和保存数据
2014/05/23 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
python机器学习库常用汇总
2017/11/15 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
事业单位接收函
2014/01/10 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
报关员个人职业生涯规划书
2014/03/12 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android
Redis三种集群模式详解
2021/10/05 Redis
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python