David Lowe 的sift一直被大家拿来使用,自己编不出来,编出来估计也不如人家编的好,就拿来用了

首先利用sift对目标物提取特征点,作为之后的判断依据

demo的目的是再一段视频中检测到目标物体。

我们利用了opencv去读取一段视频

利用sift去提取每一帧的特征点,之后进行匹配

起初想去除错检测点,但发现确实不太好处理,算法时间,错误点数量,如何达到最优都比较麻烦。

最后觉得既然是要检测出目标那么判断匹配点的数量

如果数量足够多那么就发出报警。也就是规定一个阀值而已。

程序源码如下:

void main()
{int i = 0;int num  =0;CvCapture *capture;IplImage *frame;IplImage *tempframe;IplImage *object;Keypoint k1 = NULL, k2 = NULL;//tempframe = cvCreateImage(capture = cvCaptureFromFile("D:\\My Documents\\Visual Studio 2008\\Projects\\siftobject\\PETS-09.avi");object = cvLoadImage("object.png",1);IplImage *objecttemp;objecttemp = cvCreateImage(cvGetSize(object),8,1);cvCvtColor(object,objecttemp,CV_BGR2GRAY);char filename1[1024];sprintf(filename1,"D:\\My Documents\\Visual Studio 2008\\Projects\\siftobject\\siftobject\\object.pgm",i);cvSaveImage(filename1,objecttemp);system("siftWin32.exe <object.pgm >object.key");cvNamedWindow("Webcam",0);while(i<10){frame = cvQueryFrame(capture);tempframe = cvCreateImage(cvGetSize(frame),8,1);cvCvtColor(frame,tempframe,CV_BGR2GRAY);//cvShowImage("Webcam",frame);//cvWriteFrame(writer,frame);char filename[1024];sprintf(filename,"D:\\My Documents\\Visual Studio 2008\\Projects\\siftobject\\siftobject\\test.pgm",i);cvSaveImage(filename,tempframe);//cvShowImage("Webcam",tempframe);printf("%d\n",i);//cvWaitKey(0);//if(cvWaitKey(20)>0)     break;i++;system("siftWin32.exe <test.pgm >test.key");char* test = "test.key";char* object = "object.key";k1 = ReadKeyFile(test);k2 = ReadKeyFile(object);num = FindMatches(k1,k2,tempframe);cout<<num<<endl;num = 0;//cvShowImage("Webcam",tempframe);//system("siftWin32.exe <test.pgm >test.key");}cvReleaseCapture(&capture);cvDestroyWindow("Webcam");
}

由于程序源码很长,这里仅仅贴出了主函数部分。

其他代码大家可以参看 David Lowe 的个人网站。

http://www.cs.ubc.ca/~lowe/

另外给出另一个牛人的homepage

Andrea Vedaldi:http://www.vlfeat.org/~vedaldi/ 他的代码效率更高,效果更好。

希望做同样工作的同学跟我联系,共同讨论。

利用 David Lowe 的sift源码实现遗留物检测相关推荐

  1. RobHess的SIFT源码分析:imgfeatures.h和imgfeatures.c文件

    SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述 imgfeatures.h中有SIFT特征点结构struct feature的定义,除此之外还有一些特征点的导入导出以及特 ...

  2. RobHess的SIFT源码分析:综述

    最初的目的是想做全景图像拼接,一开始找了OpenCV中自带的全景拼接的样例,用的是Stitcher类,可以很方便的实现全景拼接,而且效果很好,但是不利于做深入研究. Stitcher类使用方法请查Op ...

  3. OpenCV SIFT源码讲解——代码逻辑宏观窥探

    OpenCV SIFT源码讲解--代码逻辑宏观窥探 一.暴露在外的接口:SIFT 二.隐藏在SIFT背后的本质:SIFT_Impl 三.使用sift算法全流程 一.暴露在外的接口:SIFT 一般来说, ...

  4. OpenCV SIFT源码详解——总体概览

    OpenCV SIFT源码详解--总体概览 一.版本 二.章节系列 此系列文章源自本人硕士毕业论文,主要讲源码,对于SIFT理论知识默认大家有过了解.若文章中有不对之处还请读者指出. 一.版本 本系列 ...

  5. C#技巧【调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法】【C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件”的解决】

    SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机.32位ARM Cortex-M0处理器.128kB Flash存储器.以及丰富的数字接口.SYD8801片上集成了 ...

  6. 机器视觉,halcon项目源码,视觉检测和视觉测量源码

    机器视觉,halcon项目源码,视觉检测和视觉测量源码. 提供源码和图片调试 支持本地相机和实际相机 网络通信 流程设计 框架源码 用户管理 支持产品切换功能

  7. 酷享cms网站企业授权系统源码 带盗版检测

    介绍: 酷享cms企业授权系统源码带盗版检测 1.网站基本管理.系统设置.公告设置.接口设置.价格设置.下载设置. 2.文章管理.广告轮图管理.添加授权.授权列表.授权日志. 3.支付订单.充值订单. ...

  8. 机器视觉框架源码、视觉检测、AOI视觉检测、机械手定位、点胶机、插件机、激光切割机、视觉螺丝机

    机器视觉框架源码.视觉检测.AOI视觉检测.机械手定位.点胶机.插件机.激光切割机.视觉螺丝机.视觉贴合机.激光焊接机.视觉裁板机--,C#联合Halcon混合编程源码,插件式开发 ,带手眼标定,相机 ...

  9. 利用cmake查看OpenCV的源码的方法

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 当我们有时想查看opencv自带的函数的源代码, ...

  10. 利用Docker极速下载OpenJDK11源码

    常规下载方式的不足 常用的下载OpenJDK11源码方式来自官方推荐,如下命令: hg clone http://hg.openjdk.java.net/jdk/jdk11 这种下载方式要装pip,再 ...

最新文章

  1. Matlab与线性代数 -- 矩阵的重组3
  2. Handler消息处理机制详解
  3. R语言ggplot2可视化散点图并使用scale_y_log10函数配置Y轴对数坐标、使用ggforce包的facet_zoom函数将可视化结果中需要突出放大的区域进行放大(Zoom in)
  4. 一个c/c++分布式框架ZMQ或者ZeroMQ, 介绍和win下安装使用方法
  5. java 内存泄漏场景_Java内存泄露的例子
  6. 基于VHDL报警系统设计
  7. magento邮件使用php,Magento订单成功无邮件发送
  8. python计算a的平方加b的平方_NumPy计算范数2的平方
  9. 苹果xr如何截屏_苹果手机自带的三种截屏技巧,你知道几个?现在知道还不迟...
  10. LINUX awk操作
  11. spring2.X(1)--新特性介绍
  12. 来自java文档 Thread类
  13. 一级 计算机应用基础,一级计算机应用基础(教材浓缩精华版)
  14. 使用函数调用方式解决:输入三个正整数a,b,n,求a/b精确到小数后第n位。
  15. javaEMail账号验证
  16. 微信小游戏个人游戏发布《自省自查报告》
  17. BC28连接电信Iot平台上报数据(详细解析)
  18. 【Linux】 - linux文本编辑器vim的常用操作
  19. ESP32-C3入门教程 网络篇④——IP地址的设置和获取
  20. 自然语言处理(NLP):竞赛平台【国际、国内】

热门文章

  1. 3个空手套白狼的经典案例,教你如何利用商业模式疯狂赚钱
  2. linux嵌入式工控机编程,Linux嵌入式工控机的特点
  3. 计算机二级考试Python编程试题解读:使用turtle库绘制三角形
  4. 陈彤一个网络编辑的11年
  5. 印度软件外包领军企业上演安然门
  6. 开学季,如何申请免费学生云服务器
  7. 什么是拓扑结构_拓扑结构图
  8. 2019年04月02日清明上海迪士尼游
  9. 为何我的孩子不沉迷网络游戏
  10. 186.MultiAutoCompleteTextView