- 博客(74)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 OpenCV中Mat的type
OpenCV中几种不同深度的数据格式,其特性统计如下: 图像类型 数据类型 字节 取值范围 显示范围 IPL_DEPTH_8U unsigned char 1 0~255 0~255 IPL_DEPTH_8S char 1 -128~127 -128~128 IPL_DEPTH_16U unsigned short 2 0~6
2017-09-03 13:55:56
732
原创 caffe 图片格式
caffe进行目标检测,训练和识别时需要保持数据格式一致才可以保证识别时候的正确率,所以这里把caffe中使用的图片格式列出来:1、灰度图: 灰度值[0-255]1、三通图: BGR格式,若输入图片不是这个格式则需要转化过来。
2017-09-01 10:49:30
1348
原创 Easygui简单说明教程(python的GUI类库)
写弹窗程序需要用到Easygui, 就在这简单说明一下.Easygui是一个Python用于简单开发GUI的类库, 很适合新手写简单的图形界面EasyGui是基于TKinter的,所以可以跨平台使用。使用方法很简单,下载之后解压把easygui.py放到python安装目录下的lib/site-packages/下面即可下载链接:http://pan.baidu.com/share/link?sha
2017-05-10 13:31:26
8213
原创 python windows安装
1、首先访问http://www.python.org/download/去下载最新的python版本。2、安装下载包,一路next。 3、为计算机添加安装目录搭到环境变量,如图把python的安装目录添加到pth系统变量中即可。 4、测试python安装是否成功,cmd打开命令行输入 python 命令,如下图即成功了
2017-05-10 13:29:14
476
原创 图像 YUV与RGB格式转换
YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式。 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式。 RGB与YUV的变换公式如下: YUV(256 级别) 可以从8位 RGB 直接计算:Y = 0.299 R + 0.587 G + 0.114 BU = - 0.1687 R - 0.3313 G + 0.5 B + 128V = 0
2017-05-09 00:31:05
1802
原创 感知哈希算法(Perceptual hash algorithm) 以图搜图
1.序 目前“以图搜图”的引擎越来越多,可参考博文: http://blog.youkuaiyun.com/forthcriminson/article/details/8698175 此篇博文中列出了很多“以图搜图”的引擎,之前很好奇他们是如何进行检索的,偶然间看到了一篇博客,上面说Google和Tineye主要利用的算法是感知哈希算法(Perceptua
2017-05-06 23:27:33
12398
2
原创 三种基于感知哈希算法的相似图像检索技术
大家都用google或baidu的识图功能,上面就是我搜索一幅图片的结果,该引擎实现相似图片搜素的关键技术叫做“感知哈希算法”(Perceptual hash algorithm),它的作用是对每张图片生成一个“指纹”(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。达到图片比较目的且利用信息指纹比较有三种算法,这些算法都很易懂,下面分别介绍一下:1、基于低频的
2017-05-06 23:18:16
7360
1
原创 c++ bind函数
头文件:#include <functional> 前言 函数绑定bind函数用于把某种形式的参数列表与已知的函数进行绑定,形成新的函数。这种更改已有函数调用模式的做法,就叫函数绑定。需要指出:bind就是函数适配器。先上实例:#include <iostream> #include <functional> using namespace std; using namespa
2017-05-03 21:01:11
14705
原创 ubuntu14.04安装caffe2
前段时间贾清扬大牛在Facebook推出了caffe2版本,相比caffe来说感觉更加轻量级和高效。Caffe2的安装相比于caffe在安装的时候更加简便,略去了Makefile.config的各种配置,对于有无GPU以及各种可选库例如OpenCV,anaconda的支持也更简单。(其实你直接装好库以后make就好,以GPU为例,在make的时候,自动检测你是否安装了CUDA,若没有,就自动CPU
2017-05-02 19:45:37
2338
原创 opencv 常用数据格式
一般的图像文件格式使用的是 Unsigned 8bits,CvMat矩阵对应的参数类型就是 CV_8UC1,CV_8UC2,CV_8UC3。 (最后的1、2、3表示通道数,譬如RGB3通道就用CV_8UC3)而float 是32位的,对应CvMat数据结构参数就是:CV_32FC1,CV_32FC2,CV_32FC3… double是64bits,对应CvMat数据结构参数:CV_64FC1,
2017-04-30 21:31:40
1734
原创 ONVIF协议 简介
一、简单介绍 1形成 2008年5月,由安讯士(AXIS)联合博世(BOSCH)及索尼(SONY)公司三方宣布携手共同成立一个国际开放型网络视频产品标准网络接口开发论坛,取名为ONVIF(Open Network Video Interface Forum,开放型网络视频接口论坛),并以公开、开放的原则共同制定开放性行业标准。ONVIF标准将为网络视频设备之间的信息交换定义通用协议,包括装置搜寻
2017-04-25 23:30:05
16598
原创 caffe2 树莓派使用
下载路径: https://github.com/caffe2/caffe21 安装cmake sudo apt-get install cmake2 运行caffe2/scripts/build_raspbian.sh若有问题则: 修改build_raspbian.sh文件: 添加-DUSE_GLOO=OFF 即:将cmake .. \ -DCMAKE_VERBOSE_MAK
2017-04-25 17:00:47
1459
原创 图像处理 去模糊 去马赛克 软件
1、恢复模糊的图像 SmartDeblur SmartDeblur 是一个开源去模糊工具,专用于修复拍摄照片过程中由于不正确的对焦(虚焦)和移动所造成的模糊图像,具体包括因虚焦引起的模糊(Out of Focus blur)、因运动引起的模糊(Motion blur)、高斯模糊(Gaussian blur)。拍摄过程中产生的模糊,并非不可逆过程,其实只是所有的信息根据一些规则而进行了重新分配,通过
2017-04-23 22:14:00
9209
原创 visual studio 好用的插件
1.Whole Tomato(番茄助手) Visual AssistX是一款非常好的MicrosoftVisual Studio插件,可以支持Microsoft Visual Studio 2003,Microsoft Visual Studio 2005,Visual Studio 2008,Microsoft Visual Studio 2010,Microsoft Visual Studio
2017-04-23 20:53:55
1262
原创 LBP特征 旋转不变 标准型 圆型 及其在人脸识别中的应用含代码
LBP(Local Binary Patterns,局部二值模式)是一种能够有效地度量和提取图像局部纹理信息的算子,具有旋转不变性和灰度不变性等显著的优点。它是人脸识别中一种提取特征的重要方法,具有对光照不敏感的特性,但是对姿态和表情的鲁棒性不强。 1、背景及理论基础 人脸识别是指将一个需要识别的人脸和人脸库中的某个人脸对应起来(类似于指纹识别),目的是完成识别功能,该术语需要和人脸检测进行区分
2017-04-23 13:43:25
9332
原创 c++ 虚函数
在类的编程中,要能进行抽象编程,不随类的改动而改动。类机制必须解决这个问题。在c++中就是虚函数机制。基类与派生类的同名操作,只要标记上virtual,该操作便具有多态性。一旦标记基类的函数为虚函数,便有连锁反应,后面继承的类中一切同类型同名成员函数都变成了虚函数。仅仅对于对象的指针和引用的间接访问,才会发生多态现象。对于传值操作,引发了复制动作,已经将对象的性质做了肯定的转变,则不会多态了(多态是
2017-04-16 15:28:45
494
原创 c++ 多态、覆盖、重载的综述
在基类中定义了一个虚拟函数,然后在派生类中又定义一个同名,同参数表的函数,这就是多态。多态是这3种情况中唯一采用动态绑定技术的一种情况。也就是说,通过一个基类指针来操作对象,如果对象是基类对象,就会调用基类中的那个函数,如果对象实际是派生类对象,就会调用派声类中的那个函数,调用哪个函数并不由函数的参数表决定,而是由函数的实际类型决定。
2017-04-15 16:01:20
3611
1
原创 c++ 继承
继承面临许多技术问题,包括父类与子类的访问权限规定,子类对象既然包含了父类对象,那么初始化和构造函数的顺序规定,子类对象与父类对象的关系,当然我们也要考虑与比较类的组合与类的继承的差异,来深刻学习继承的方法。继承可以使已经存在的类无需修改就可适应新应用,继承是比重用规模更广的重
2017-04-14 14:32:33
449
原创 c++ 面向对象 总结
作为对象的构造函数,其根本的使用就是创建对象实体,如果创建失败,比如:内存空间短缺,将会引起系统异常,这时候真要论及处理,就该让程序捕捉该异常。
2017-04-13 19:50:04
699
原创 目标跟踪 浅谈
相信很多来到这里的人和我一样,都是想找一种比较好的目标跟踪算法,或者想对目标跟踪这个领域有个比较深入的了解,经典目标跟踪算法,可能我们并不需要那些曾经辉煌但已被拍在沙滩上的tracker,而是那些即将成为经典的,或者就目前来说最好用、速度和性能都看的过去tracker。我比较关注的是目标跟踪中的相关滤波方向,这里尽可能全面的谈谈相关滤波,给大家分享一些我认为比较好的算法,顺便谈谈我的看法,有可能会写
2017-04-08 23:49:11
13972
2
原创 运动目标检测 混合高斯模型
原理 : 高斯模型就是用高斯概率密度函数( 正态分布 曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。对图像背景建立高斯模型的原理及过程:图像灰度 直方图 反映的是图像中某个 灰度值 出现的频次,也可以认为是图像灰度概率密度的估计。如果图像所包含的目标区域和背景区域相比比较大,且背景区域和目标区域在灰度上有一定的差异,那么该图像的灰度直方图呈现双峰-谷形状
2017-04-07 19:58:21
6877
原创 运动目标检测 帧差法
帧差法是在连续的图像序列中两个或三个相邻帧间采用基于像素的时间差分并且二值化来提取图像中的运动区域。#include <opencv2/opencv.hpp>using namespace std;using namespace cv;//计算二值化图中白色像素点个数double bSums(Mat src){ int counter = 0; //迭代器访问像素点
2017-04-07 19:55:33
3645
原创 浅谈模式识别
吴福朝老师《模式识别》的原话(大意):模式识别是指,利用已知数据,对具有一定空间时间分布信息的数据与类别标号之间的映射做一个较好的估计。模式识别主要是对已知数据样本的特征发现和提取,比如人脸识别、雷达信号识别等,强调从原始信息中提取有价值的特征,在机器学习里面,好的特征所带来的贡献有时候远远大于算法本身的贡献。模式识别又常称作模式分类,从处理问题的性质和解决问题的方法等角度,模式识别分为有监督的分类
2017-04-07 15:37:29
9915
原创 非极大值抑制 NMS
概念: 非极大值抑制算法(Non-maximum suppression, NMS)的本质是搜索局部极大值,抑制非极大值元素。非极大值抑制(NMS)主要在图像处理中的应用主要是是为了更精确的定位某种特征。举一个简单的例子:用梯度变化表征边缘时,梯度变化较大的区域通常比较宽,所以利用x和y方向的梯度确定一个法向arctan(y/x),然后在法向上判断当前梯度测量是否是一个峰值(或局部极大值),如果是
2017-04-06 10:22:14
1426
原创 c++ 友元函数 友元类
1、友元函数 为什么会有友元函数?结合着类的特性和类中一般成员函数,我们可以这样理解:类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响
2017-04-04 22:50:56
576
原创 c++ 静态成员函数
静态成员函数可以不以捆绑的方式调用,静态成员函数被调用时,没有当前对象的信息,所以静态成员函数不能访问数据成员,只能访问静态数据成员。但可以通过传递对象参数进去从而访问成员。// class_test.cpp : 定义控制台应用程序的入口点。//#include <iostream>using namespace std;class Student{private: string n
2017-04-04 20:31:45
372
原创 c++ 访问控制之protect、private、public
protected 和privated都是针对函数定义来说的在外部程序中都不可被调用。 public表示可以被外部调用(对象.方法)public: 数据成员和函数成员可在成员函数,友元,继承类中直接使用。亦可以作为接口,供类的用户使用(即 A a,a.change())。private: 数据成员和函数成员,只能在 类成员和友元 中访问。不能被继承类访问(无论何种继承),虽然作为继承类的私
2017-04-04 20:14:46
1042
原创 c++ 类静态数据成员理解
静态数据成员: 直接上例程分析:#include <iostream>using namespace std;class Student{private: string name; int n=0;public: void set(string str){ static int number = 0; name = str;
2017-04-04 19:43:51
371
原创 mongodb 大结构文件系统 Gridfs c操作实例
GridFS是一种在MongoDB中存储大二进制文件的机制。使用GridFS存文件有如下几个原因:1、利用Grid可以简化需求。要是已经用了MongoDB,GridFS就可以不需要使用独立文件存储架构。2、GridFS会直接利用业已建立的复制或分片机制,所以对于文件存储来说故障恢复和扩展都很容易。3、GridFS可以避免用于存储用户上传内容的文件系统出现的某些问题。例如,GridFS在同一个目录
2017-04-01 08:47:28
2210
2
原创 mongodb GridFS 大结构文件系统
GridFS是一种在MongoDB中存储大二进制文件的机制。使用GridFS存文件有如下几个原因:1、利用Grid可以简化需求。要是已经用了MongoDB,GridFS就可以不需要使用独立文件存储架构。2、GridFS会直接利用业已建立的复制或分片机制,所以对于文件存储来说故障恢复和扩展都很容易。3、GridFS可以避免用于存储用户上传内容的文件系统出现的某些问题。例如,GridFS在同一个目
2017-03-31 23:21:18
1346
原创 c++操作mongodb Windows 下 mongo-c-driver vs2013编译 附使用实例
1、下载mongo-c-driver源码文件: https://github.com/mongodb/mongo-c-driver.git2、下载`libbson的源码 https://github.com/mongodb/libbson.git如果不想编译直接使用可以下载我编译好的文件: mongo-c-driver-win32-bin.7z mongo-c-driver-win64-bi
2017-03-31 12:09:27
6939
5
原创 mongodb 访问控制
官方手册中启动 MongoDB 服务时没有任何参数,一旦客户端连接后可以对数据库任意操作,而且可以远程访问数据库,所以推荐开发阶段可以不设置任何参数,但对于生产环境还 是要仔细考虑一下安全方面的因素,而提高 MongoDB 数据库安全有几个方面: 1、绑定 IP 内网地址访问 MongoDB 服务 2、设置监听端口 3、使用用户名和口令登录 1、绑定 IP 内网地址访问MongoDB 服务
2017-03-30 19:05:47
782
原创 mongodb数据导入导出
使用数据库,经常会碰到导入导出数据的需求,下面就介绍实用工具 mongoexport 和 mongoimport 的使用方法: 参数说明:-d 指明使用的库, 本例中为” my_mongodb” -c 指明要导出的表, 本例中为”user” -o 指明要导出的文件名, 本例中为”user.dat” 从上面可以看到导出的方式使用的是 JSON 的样式 。导出 CSV 格式的文件: 参数说明:-
2017-03-30 18:01:10
640
原创 mongodb GridFs
为什么要使用GridFs呢? 由于 MongoDB 中 BSON 对象大小是有限制的,所以 GridFS 规范提供了一种透明的机制,可 以将一个大文件分割成为多个较小的文档,这样的机制允许我们有效的保存大文件对象,特对于那些巨大的文件,比如视频、高清图片等。简单介绍 GridFS 使用两个表来存储数据1、files 包元数据对象 2、chunks 包其他一些相关信息的二进制块为了使多个 G
2017-03-30 17:19:12
495
原创 mongodb Capped Collection介绍
简单介绍: capped collections 是性能出色的有着固定大小的集合,以 LRU(Least Recently Used 最近最少 使用)规则和插入顺序进行 age-out(老化移出)处理,自动维护集合中对象的插入顺序,在创 建时要预先指定大小。如果空间用完,新添加的对象将会取代集合中最旧的对象。 功能特点 可以插入及更新,但更新不能超出 collection 的大小,否则更新失败。
2017-03-30 16:16:11
815
原创 mongodb 高级查询 高级操作 非常全
面向文档的 NoSQL 数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储 的同时,具有良好的查询性能。MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语 言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。由于 MongoDB 可以支持复杂的数据结构,而且带有强大的数据查询功能,因此非常受到欢迎,很多项目都考虑用 Mong
2017-03-30 15:31:11
7198
原创 c++操作mongodb Windows 上
1、下载mongodb: http://www.mongodb.org/downloads 双击即可快速安装。2、添加环境变量 3、cmd管理员运行开启mongodb服务mongod.exe --dbpath "E:\Program Files\MongoDB\data" --logpath "E:\Program Files\MongoDB\log\mongodb.log" -install
2017-03-29 19:37:33
5392
3
原创 c++ Linux 使用mysql
1、安装mysqlsudo apt-get install mysql-serversudo apt-get install apache2sudo apt-get install libmysqlclient-dev安装后,usr/include/mysql目录下就会出现mysql.h文件,可用于c++的数据库开发中。 使用时头文件#include <mysql.h>编译选项:g++ -o
2017-03-29 13:08:47
1215
1
opencv检测人眼并画出人眼轮廓
2014-08-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人