
OpenCV
文章平均质量分 68
林多
座舱架构师
展开
-
OpenCV拉普拉斯变换
拉帕拉斯变换用来检测物体的边缘信息。 在图像平坦(灰度值无变换的区域),拉普拉斯滤波后的图像在该区域的强度值为0.在图像灰度值剧烈变换的区域(边缘),拉普拉斯滤波后的图像的强度值(绝对值)相对较大。 物体边缘一般在强度值的零交点(注意:并不是在强度值为0的点,而是在强度值从正变换到负,或从负变换到正的过程中,隐含存在的为0的亚像素级的点)。拉普拉斯变换变换可用于图像增强(原创 2016-04-26 17:08:52 · 6485 阅读 · 2 评论 -
OpenCV相机标定
相机标定相机标定:简单的说,就是获得相机参数的过程。参数如:相机内参数矩阵,投影矩阵,旋转矩阵和平移矩阵等什么叫相机参数?简单的说,将现实世界中的人、物,拍成一张图像(二维)。人或物在世界中的三维坐标,和图像上对应的二维坐标间的关系。表达两种不同维度坐标间的关系用啥表示?用相机参数。相机的成像原理先来看一下,相机的成像原理: 如图所示,这时一个相机模型。将物体简化看成一个点。来自物体的原创 2016-05-09 18:05:30 · 7683 阅读 · 15 评论 -
OpenCV2从摄像头获取帧并写入视频文件
一段基于OpenCV2的代码。 作用是从摄像头获取帧并将帧写入指定的视频文件中。 需要注意的是,视频文件所在的路径需要存在,例如D:/images/1.avi。images这个目录需要存在。调用VideoWrite类对象的成员函数open时,编解码方式参数设置为-1,代码运行时会弹出对话框,手动选择编解码方式。#include<opencv2\highgui\highgui.hpp>#incl原创 2016-05-17 17:42:30 · 6596 阅读 · 0 评论 -
OpenCV检测图像SURF特征
SURF特征SURF特征——speeded up robust features 加速鲁棒特征。具有尺度不变性,计算相对高效。 所谓尺度不变性,在特征点匹配上,个人比较白话的理解是: 相同内容的不同尺度的两张图片(例,图像1:张三的正面照。图像2:张三正面照缩小一半。)。 假设两张图片上张三的鼻子中心是一个特征点,那么这两张图片,在该点处的SURF特征,应该相互匹配(确切说是SURF特征描述子原创 2016-05-05 19:11:24 · 2837 阅读 · 0 评论 -
OpenCV特征点检测
一、Harris角点检测Harris角点: 假定一个特征点,观察特征点周围小窗口(如3X3)内各个方向的强度平均变化,求得平均强度变换最大值的方向,检查该方向的垂直方向的强度变化是否很大(满足设定的阈值)。满足该条件,即为harris角点。 数学表示: 数学表示 I(x,y)表示点(x,y)的强度值。对于偏移向量(u,v),偏移向量可以看成某个方向。它的平均强度变化为: 求和覆盖预定义原创 2016-05-04 18:35:26 · 9795 阅读 · 2 评论 -
Opecv霍夫变换检测直线
一些概念的东西: 一条直线可以表示为: y=ax+b,其中a、b为常数,(x,y)表示一个点,是变量。这个式子表示了 一条直线和直线上的点的关系。坐标系为x轴和y轴,图形为一条线。换一个出发点,考虑一个点和通过该点的直线的关系。 假设已知某一个(x1,y1),x1和y1为常量。下式表示所有通过点(x1,y1)的直线。 y1=a*x1+b,其中a、b是变量,x1和y1为常量,表示点(x1,y1原创 2016-04-27 17:45:56 · 1138 阅读 · 0 评论 -
OPENCV人脸检测实现
前段日子,写了个人脸检测的小程序,可以检测标记图片、视频、摄像头中的人脸。效果还行吧,用的是opencv提供人脸库。至于具体的人脸检测原理,找资料去啃吧。 环境:VS2013+OPENCV2.4.10+Win8.1 代码地址GitHub: https://github.com/adver1991/FaceDetect 一 基于对话框的MFC首先,新建一个基于对话框的MFC...原创 2016-01-04 16:42:32 · 4964 阅读 · 47 评论 -
OpenCV查找表应用
概念OpenCV查找表的定义: 查找表【i】=newvalue 查找表第i项(灰度值i)的新值为 newvalue。也就是,将原灰度图像中灰度值为i的像素变为灰度值”newvalue“。查找表可以看成一个简单的一对一的映射函数 y=f(x)。 为什么要用查找表? 查找表用起来比较方便,对于一些简单灰度图像变换,可以定义多个查找表。然后使用同一个调用函数,调用不同原创 2016-04-20 19:43:13 · 1673 阅读 · 0 评论 -
Opencv2打开摄像头并显示图像
网上有很多例子,但绝大部分是用Opencv1写的。这里基于Opencv2,打开摄像头,并显示图像。#include <opencv2\core\core.hpp>#include <opencv2\highgui\highgui.hpp>#include <opencv2\opencv.hpp>using namespace cv;int main(){ VideoCapture c原创 2015-11-09 21:22:16 · 5361 阅读 · 3 评论 -
OpenCV2鼠标回调函数画矩形和圆
一个回调鼠标函数的例子,基于OpenCV2,比起网上一些基于OpenCV1的例子简单、明了许多。#include<opencv2\opencv.hpp>//鼠标回调函数void my_mouse_callback(int event, int x, int y, int flags, void* param);//保存绘制所用的点cv::Point pt;cv::Point pt1;//原创 2016-02-20 19:33:10 · 1602 阅读 · 0 评论 -
OpenCV2应用Meanshift查找相似物体
1.概念这里说的是OpenCV中实现的Meanshift算法的大体概念。 在OpenCV中meanshift算法的原理,大体上是这样的: 首先,预先定义一个窗口(可以通过openCv中的ROI在图像上定义一个感兴趣的窗口),然后计算窗口内所有像素(数据)点的重心,然后将窗口中的中心移动到重心点。重复这个过程,直到满足迭代终止条件。 OpenCV2中,实现meanshift算法的函数是:cv::原创 2016-04-21 18:45:21 · 5416 阅读 · 2 评论 -
Opencv2相似图像检索
目标:选出一个参考图像,找出一组图像中与参考图像最相似的图像。 相似图像检索:基于图像内容的相似度检索,可以利用两幅图像的直方图特征,评估两幅图像的直方图相似度,进而得到两幅图像的相似度。第一步:直方图特征提取函数calcHist用来计算图像直方图特征,函数原型如下:void calcHist(const Mat* images, int nimages, const int* channels,原创 2016-04-22 13:23:32 · 5872 阅读 · 4 评论 -
图像分割:Grabcut算法小程序
OpenCV中的GrabCutGrabCut是流行的图像分割算法之一,通过标记前景像素、相似色彩聚类、边界像素惩罚和迭代,寻找最优解。 本文用OpenCV实现的GrabCut算法,做了个小程序。至于该算法的详解可自行百度学习吧。 OpenCV中GrabCut算法函数原型:void grabCut(InputArray image, InputOutputArray mask, Rect rect原创 2016-04-25 17:05:59 · 9855 阅读 · 11 评论 -
OpenCV2帧间差分检测运动目标
对于一个固定的场景(背景),我们感兴趣的是在场景中运动的物体(前景)。前景提取是在智能监控应用中的一个基础步骤。 帧间差分:在运动目标检测中,简单来说,就是背景与当前帧之间的差异。数字图像可以表示成一个矩阵,矩阵中每一个元素叫一个像素点。帧间差分=绝对值(背景-当前帧图像)。 怎么确定前景? 我们取帧间差分足够大的像素点,将这些像素点作为前景像素。基于帧间差分的运动目标的主要问题: 背景建模原创 2016-05-23 17:36:33 · 9096 阅读 · 7 评论