使用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 multiprocessing.Manager介绍和实例(进程间共享数据)
Nov 21 Python
python使用PythonMagick将jpg图片转换成ico图片的方法
Mar 26 Python
Python排序算法实例代码
Aug 10 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
Nov 02 Python
python中学习K-Means和图片压缩
Nov 20 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
使用Python控制摄像头拍照并发邮件
Apr 23 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 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中foreach循环中使用引用要注意的地方
2011/01/02 PHP
php二维数组用键名分组相加实例函数
2013/11/06 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
js右键菜单效果代码
2007/07/21 Javascript
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
详解Python爬虫的基本写法
2016/01/08 Python
python的unittest测试类代码实例
2017/12/07 Python
python实现xlsx文件分析详解
2018/01/02 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
全球性的女装店:storets
2019/06/12 全球购物
中科方德软件测试面试题
2016/04/21 面试题
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书