图像基本算法
misslibra
计算机小硕一枚,专攻计算机视觉,模式识别
欢迎交流学习!
qq:947177904
展开
-
图像差值算法
在做数字图像处理时,经常会碰到小数象素坐标的取值问题,这时就需要依据邻近象素的值来对该坐标进行插值。比如:做地图投影转换,对目标图像的一个象素进行坐标变换到源图像上对应的点时,变换出来的对应的坐标是一个小数,再比如做图像的几何校正,也会碰到同样的问题。以下是对常用的三种数字图像插值方法进行介绍。1、最邻近元法这是最简单的一种插值方法,不需要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度转载 2015-07-09 20:51:48 · 6226 阅读 · 0 评论 -
CvMat成员分析
旧版本的OpenCV中的C结构体有 CvMat 和 CvMatND,目前我用的是 2.3 版,里面的文档指出 CvMat 和 CvMatND 弃用了,在C++封装中用 Mat 代替,另外旧版还有一个 IplImage,同样用 Mat 代替(可以参考博文 OpenCV中的结构体、类与Emgu.CV的对应表).矩阵 (M) 中数据元素的地址计算公式:addr(Mi0,i1,…im-1)转载 2016-04-13 16:37:48 · 866 阅读 · 0 评论 -
视频图像动态前景分割(待续)
暂时先罗列下相关的算法,先做出骨架,待日后慢慢丰富其肌肉和羽翼。 一是基于参数模型的分割方法: 1、运动参数估计二是基于非参数模型的分割方法: 1、光流法 2、贝叶斯算法 3、Snake算法三是基于形态学的分割方法:四是基于变化的分割方法: 1、帧间差分法另外是一些其他算法: 1、目标熵分割法 2、Mallat小波分割 3、Gabor小波分割原创 2016-04-20 10:34:30 · 1950 阅读 · 0 评论 -
人脸识别、姿态识别问题处理步骤
——-本文是参考王守佳先生的博士论文《基于图像的人体监测跟踪和人脸识别的研究》而写的笔记。对于模式识别问题,首先是必须对视频图像进行预处理,滤除杂波后,开始识别的步骤。目前人脸识别中光照预处理方法常用的有直方图均衡化( Histogram Equalization,HE)、Gamma 校正。局部对比度增强算法( Local Contrast Enhancement,LCE、离散余弦变换 (Di原创 2016-04-20 11:48:59 · 6574 阅读 · 0 评论 -
人脸识别方法简记
1、特征脸方法Eigenface,这是一种K-L方法,也叫作PCA方法或者Hotelling,它是一种最优的方法,通过 K-L 变换我们可以将一般的高维空间的信息和数据压缩到低维的空间中去,进而可以减少维数,同时也可以通过低维空间信息去描述高维空间数据。而 PCA 的方法就是通过这个思想将图像以列向量的方式来表示的。2、线性判别分析,Linear Discriminant Analysis,简称原创 2016-04-20 15:37:25 · 608 阅读 · 0 评论 -
基于全局和局部特征的人脸识别
—–本文是基于苏煜等人的文章《基于全局和局部特征集成的人脸识别》而写成的方法摘要。人脸的全局特征描述主要特征信息,包括肤色,轮廓,面部器官的分布等的整体信息。而局部特征描述的人脸的细节特征,比如器官特点、面部奇异特征,类似伤疤、黑痣、酒窝等。前者用于粗略匹配,后者用于精细匹配。两种特征进行集成,可以作为人脸识别的分类器。首先对图像做傅里叶变化,保留低频部分的实部和虚部的系数,当做全局傅里叶特征向量。原创 2016-04-20 17:29:17 · 6319 阅读 · 0 评论 -
OpenCV直线拟合
——摘抄自http://blog.csdn.net/liyuanbhu/article/details/50193947 OpenCV 提供的直线拟合函数。函数原型如下:void fitLine( InputArray points, OutputArray line, int distType, double param, double reps,转载 2016-05-09 09:52:17 · 1699 阅读 · 0 评论 -
图像中求点到直线的距离
在图像中求距离用到较多的是对两点式直线求距离,这篇文章给出的代码也是基于这种情况,在给定直线上两个点的情况下求直线外一点到直线的距离。 首先回顾下直线的多种表达公式: http://baike.baidu.com/view/2136602.htm 以及点到直线的距离公式: http://baike.baidu.com/subview/3268213/3268213.htm 那么从两点式化为原创 2016-06-15 15:43:34 · 2982 阅读 · 0 评论 -
Homography estimation实现
1、RANSAC:RANdom Sample Consensus算法2、Poisson blending/Mix blending3、Homography estimation 这边先讲讲怎么实现homography matrix的实现吧。 背景故事是这样的:有一座美丽的房子,从正面拍了一张照片,换个角度再拍一张,然后想要把侧面的图变换回去,这就需要知道他们之间的变换关系。这个变换关系可以通过对原创 2016-07-26 19:21:29 · 7883 阅读 · 3 评论 -
python ndarray image process
在python内,type(image)检查图片格式发现,是ndarray,这样,就不能再使用cv2里面的函数来读入图片、显示图片、保存图片。 这种情况下,需要用matplotlib包来帮助实现对图片的处理。这里简要列举几种常用的处理:#首先,import the packageimport matplotlib.pyplot as plt#显示图片plt.imshow(image)plt原创 2016-11-24 16:28:55 · 1717 阅读 · 0 评论 -
python opencv cv2 to process video
本文总结下使用cv2做视频处理的一些基本步骤。#读入视频import cv2videocap = cv2.VideoCapture("/cv/Desktop/1.avi")#保存视频图片fourcc = cv2.cv.CV_FOURCC(*XVID)video_FPS = 25framesize = (image.shape[1],image.shape[0])video_name =原创 2016-11-24 19:48:21 · 815 阅读 · 0 评论 -
工作日志
专门开一篇文章,当做总结日志吧。 9\9: 首先,复习下break和continue 。 break是跳出包含它的那个循环,如果是双重循环且BREAK是在内循环中的,就只能跳出内循环,在外循环中就结束这个双重循环。 continue是结束本次循环执行下一次循环。 可以用如下方法,多判断一次bool型的条件语句,退出双层循环。if (...){bMatch = false;break;原创 2015-12-22 11:21:06 · 807 阅读 · 0 评论 -
深度和通道的理解
矩阵数据类型:– CV_(S|U|F)CS = 符号整型 U = 无符号整型 F = 浮点型E.g.:CV_8UC1是指一个8位无符号整型单通道矩阵,CV_32FC2是指一个32位浮点型双通道矩阵CV_8UC1 CV_8SC1 CV_16U C1转载 2016-04-14 10:04:00 · 1925 阅读 · 0 评论 -
OpenCV:imshow()/imwrite()数据类型问题
void imshow(const String& winname, InputArray mat);bool imwrite( const String& filename, InputArray img, const std::vector<int>& params = std::vector<int>()); 函数显示和保存图像和传入的Mat图片的数据类型有关,原创 2016-04-25 14:46:59 · 4022 阅读 · 0 评论 -
遍历图像的方法及速度
晒晒图像遍历速度对比原创 2015-08-20 17:34:27 · 1477 阅读 · 0 评论 -
计算程序运行时间的两种方法
第一种:#include<time.h>clock_t start, finish;double duration;start = clock();//放入你想测得函数finish = clock();duration = (double)(finish - start) / CLOCKS_PER_SEC;cout << "dilation duration is " << durati原创 2015-08-31 17:03:39 · 667 阅读 · 0 评论 -
警告 1 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符
今天敲代码出现一堆这个警告,以及一些链接错误。网上百度出来一堆方法,另存编码格式或者是硬性让警告不出现,感觉都不是办法。 仔细检查代码发现,在一个头文件内,重复声明了一个函数名(函数体不一样)。用这个函数的时候,人应该也会被我搞晕吧,何况是计算机呢。。。。o(╯□╰)o原创 2015-08-19 17:16:10 · 2305 阅读 · 0 评论 -
线性拟合和线性回归
在这里,我们只说说一元的情况,直白的说就是:y=ax+b。也就是只关注一个变量和函数值的关系。 有这样一个场合:在xy坐标系中有一群离散的点,试图通过这些点的分布来找到x、y之间的联系,也就是找到一条和所有点都最接近的直线,并且把这条直线表示出来。 就想搓绳索一样,把松散的纤维拧成一条线,散点拟合成线,或者说这些点回归到线上。也就是说,线性拟合和线性回归是一个意思。常用的拟合方法是最小二乘法:原创 2015-11-09 16:28:55 · 4221 阅读 · 0 评论 -
像素和像素值
假如一张像素为m*n的数字图片,那么这张图片被编号为0到m的行线和编号为0到n的列线分割成m*n个小方块。每一个方块叫做一个像素,整块的区域的灰度值一致,也就是这块的像素值。这块像素的表示是这个方块左上角的行列数。原创 2015-12-28 16:58:15 · 4665 阅读 · 1 评论 -
OpenCV:Mat元素访问方法、性能
http://blog.csdn.net/bendanban/article/details/30527785转载 2016-01-21 16:12:45 · 430 阅读 · 0 评论 -
开始在频率域干活吧
用频域处理思想来拓展图像处理思路。原创 2016-01-30 14:11:54 · 434 阅读 · 0 评论 -
高斯滤波
转自http://blog.csdn.net/fullyfulei/article/details/8758372如何计算高斯函数模板(高斯核)?其实,只要知道模板的大小和高斯函数的方差sigma,由二维高斯函数的表达式很容易计算出高斯核,只要在归一化就可以了。但是由高斯函数的分布特性可知落在u-3*sigma到u+3*sigma的概率大于百分之九九,所以模板大小的选取往往与sigma的取值是相关的转载 2016-01-13 17:58:26 · 1322 阅读 · 0 评论 -
曲线抽稀方法罗列
曲线抽稀理论,包括补步长法,线段过滤法,圆柱法,道格拉斯-普克(Douglas-Peucker)法,垂距限值法等来定义抽稀因子。原创 2016-03-17 11:28:30 · 2544 阅读 · 0 评论 -
边缘检测的输出
最近的一个项目,应用到了Canny边缘检测的结果。 待续。。。原创 2016-03-31 11:44:12 · 867 阅读 · 0 评论 -
一段很巧妙的直方图统计算法代码
double absolute_histo[256] = { 0 }; for (int i = 0; i < Image.rows; i++) { const uchar* p = Image.ptr<uchar>(i); for (int j = 0; j < Image.cols; j++) { absol原创 2016-03-21 14:03:12 · 3489 阅读 · 0 评论 -
简要说说k-means 聚类的过程
k-means聚类属于无监督学习的一种,在没有给与labels的情况下,将数据分成指定的K类。pou一张经典的图来看看这个算法。 对于第一张图一样的散乱的数据样本的聚类,首先,假设要聚成两大团,那么,随机给两个点的坐标,如同第二张图的两个十字mark,然后第一步就是帮所有点认领归属的团,站第一次队。认领方法是,每个点都算一算自己到这两个十字mark的距离,认领距离小的那个mark,作为自己的归原创 2017-04-25 16:57:31 · 4568 阅读 · 0 评论