使用opencv中匹配点对的坐标提取方式
作者:仙女阳 发布时间:2022-12-02 00:32:54
标签:opencv,匹配点,坐标,提取
在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 如何获取一个连通域中的所有坐标点
#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;
}
来源:https://blog.csdn.net/wangyang20170901/article/details/82456347
0
投稿
猜你喜欢
- UCHOME的代码还是很不错的,学习一下! <?php /** * 定义一些常量 */ @define('IN_UCHOME&
- 一、什么是用户体验?用户体验的名词解释用户体验(User Experience,简称UE)是一种纯主观的在用户使用一个产品(服务)的过程中建
- 前言序锦很多时候,当我们在使用编辑器的时候,遇到复制粘贴,修改别人代码等等的时候,都会遇到这个让人头疼的问题,那就是如何解决格式问题,今天就
- 定时关机,功能:windows下,用户按照一定格式输入关机时间,系统到指定时间自动关闭 思路:从用户输入获取指定时间 分别以时分秒减去当前时
- 背景:今天同事写代码,用python读取一个四五百兆的文件,然后做一串逻辑上很直观的处理。结果处理了一天还没有出来结果。问题出在哪里呢?解决
- 如下所示:import requestsurl='http://####'proxy={'http':
- jupyter因为其在python框架下具有一个较为人性化的设计,从而在数据分析,python教学,以及python的快速学习中大放光彩.j
- 因为自己在设计的时候就对这些东西经常不是很在意,以为是很小的事情,结果往往给自己搞出不少的麻烦。可能大家没有我这么粗心,不过还是想提醒一下跟
- 标量标量由普通小写字母表示(例如,x、y和z)。我们用 R \mathbb{R} R表示所有(连续)实数标量的空间。标量由只有一个元素的张量
- 目录寻找 url下载视频执行代码下载:最后的话回答来源微信 8.0 版本更新后,可以设置个人状态,状态里面可以添加火录制视频,很快状态视频就
- 本文实例讲述了python获取文件后缀名及批量更新目录下文件后缀名的方法。分享给大家供大家参考。具体实现方法如下:1. 获取文件后缀名:#!
- 背景最近本菜鸡在学习 python GUI,从 tkinter 入门,想先做个小软件练习一下思来想去,决定做一个 计算器设计思路首先,导入我
- 文 | 某某白米饭来源:Python 技术「ID: pythonall」微信和 QQ 都有一个存放缓存文件的文件夹,微信在设置 -
- 一. 问题:在写调用谷歌翻译接口的脚本时,老是报错,我使用的的是googletrans这个模块中Translator的translate方法
- 一、在线程中获取时间,判断当前时间三面之后,触发“事件”对象。 运行结果:二、在另一个线程
- 如何在安装setuptools模块时不生成egg压缩包而是源码 Q:如何在安装setuptools模块时
- 对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这些方式也存在着一些区别,对相关
- 如何用ASP获知机器的网络配置?看看我们的例子:Option Explicit Dim WSHShell&nb
- 本文实例讲述了Python使用MD5加密算法对字符串进行加密操作。分享给大家供大家参考,具体如下:# encoding: utf-8from
- 环境ubuntu 12.04 LTSpython 2.7.3opencv 2.3.1-7安装依赖sudo apt-get install l