您正在查看 "图像处理" 分类下的文章 2011年05月24日 星期二 22:17 刚开始学图像处理,需要查找一些关于图像x,y方向一阶导数和二阶导数的问题。可是发现,在网上怎么也找不见。不知道是我不会找还是怎么回事。还是看书吧。哎
总结如下
基础知识:
首先要知道图像中像素点的分布问题。数字图像中,f(x,y)可表示成一个M*N的二维数字阵列,即如下图 |
2011年05月23日 星期一 20:48 这个问题不好说,简单的说你得从小波的多分辨率分析开始理解,多分辨率分析又得从映射来理解,映射又得从向量的投影来理解,所以我就从向量的投影来说:假设是在三维空间里表达一个向量,我们需要建立一个三维的坐标系,只要坐标系建立我们就可以用三个点(x,y,z)来简单的表示一个向量,同样的在一个信号我们设为f(t),要想表示它,我们可以用一个个正交的简单函数来构建坐标系,然后将f(t),映射与这些简单的正交函数上,产生一个 |
2011年03月08日 星期二 10:30 CV_INLINE double cvmGet( const CvMat* mat, int row, int col ) { int type;
type = CV_MAT_TYPE(mat->type); assert( (unsigned)row < (unsigned)mat->rows && |
2011年02月24日 星期四 19:48 双三次插值(Bicubic interpolation)
双三次插值是一种更加复杂的插值方式,它能创造出比双线性插值更平滑的图像边缘。请读者留意下图中的眼睫毛部分,在这个地方,软件通过双三次插值创造了一个象素,而这个象素的象素值是由它附近的(4 x 4)个邻近象素值推算出来的,因此精确度较高。双三次插值方法通常运用在一部分图像处理软件、打印机驱动程序和数码相机中,对原图像或原图像 |
2011年02月24日 星期四 18:50 插值算法对于缩放比例较小的情况是完全可以接受的,令人信服的。一般的,缩小0.5倍以上或放大3.0倍以下,对任何图像都是可以接受的。
最邻近插值(近邻取样法): 最临近插值的的思想很简单。对于通过反向变换得到的的一个浮点坐标,对其进行简单的取整,得到一个整数型坐标,这个整数型坐标对应的像素值就是目的像素的像素值,也就是说,取浮
|
2011年02月24日 星期四 16:30
图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。下面就来讲讲计算机怎么来放大缩小图象;在本文中,我们所说的图像都是指点阵图,也就是用一个像素矩阵来描述图像的方法,对于另一种图像:用函数来描述图像的矢量图,不在本文讨论之列。
|
2010年12月13日 星期一 13:26 2010年12月11日 星期六 15:01
曲线峰值为1/(2π)½σ
高斯分布,也称 |
2010年12月10日 星期五 13:14 2010年12月07日 星期二 12:30 ORL人脸库是由英国剑桥Olivetti实验室从1992年4月到1994年4月期间拍摄的一系列人脸图像组成,共有40个不同年龄、不同性别和不同种族的对象。每个对象10幅图像共计400幅灰度图像组成,图像尺寸是92×112,图像背景为黑色。其中人脸部分表情和细节均有变化,例如笑与不笑、眼睛睁着或闭着,戴或不戴眼镜等,人脸姿态也有变化,其深度旋转和平面旋转可达20度,人脸尺寸也有最多10%的变化。该库是目前使用最广泛的标准数据库,它含有大量的比较结果。 |
2010年11月15日 星期一 18:54 对于PCA,一直都是有个概念,没有实际使用过,今天终于实际使用了一把,发现PCA还是挺神奇的。
在OPENCV中使用PCA非常简单,只要几条语句就可以了。
1、初始化数据
//每一行表示一个样本
CvMat* pData = cvCreateMat( 总的样本数, 每个样本的维数, CV_32FC1 );
CvMat* pMean = cvCreateMat(1, 样本的维数, CV_32FC1);
//pEigVals中的每个数表示一个特征值
CvMat* pEigVals = cvCreateMat(1, min(总 |
2010年09月09日 星期四 18:38
基本的拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数f(x1,x2,...)在g(x1,x2,...)=0的约束条件下的极值的方法。其主要思想是引入一个新的参数λ(即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配成与变量数量相等的等式方程,从而求出得到原函数极值的各个变量的解。
拉格朗日乘子(Lagrange multiplier) |
2010年09月09日 星期四 10:37 PCA ( Principal Component Analysis , PCA )是主成分分析,主要 用于数据降维,对于一系列例子的特征组成的多维向量,多维向量里的某些元素本身没有区分性,比如某个元素在所有的例子中都为1,或者与1差距不大,那么这个元素本身就没有区分性,用它做特征来区分,贡献会非常小。所以我们的目的是找那些变化大的元素,即方差大的那些维,而去除掉那些变化不大的维,从而使特征留下的都是“精品”,而且计算量也变小了。
|
2010年09月01日 星期三 18:56 IplImage * change4channelTo3InIplImage(IplImage * src) { if (src->nChannels != 4) { return NULL; }
int destimgSize; destimgSize = src->height*src->width*3; int srcImgTotalSize; srcImgTotalSize = src->widthStep*src->height; char * buffer = new char[destimgSize];//用 |
2010年08月30日 星期一 19:08 最近做一个Real time Face Detection的系统,用到了OpenCV,其中需要DIB和IplImage之间的转换,在网上找了很多solution,都不行。郁闷,只有自己小研究了下。
其中DIB和IplImage的数据区是差不多的,只是一个简单的顺序相反关系
byte *p = new byte[m_InInfo.bmiHeader.biWidth*m_InInfo.bmiHeader.biHeight*3];//开辟新空间 IplImage* m_SnapImage = cvCreateImageHeader(cvSize(m_InInfo.bmiHeader.biWidth,m_InInfo.bmiHeader.biHeight),IPL_DEPTH_8U,3);//创建IplImage头 |
| | |