标签:
杂谈 |
1.机体坐标系Xb,Yb,Zb(最常用的一种如下图)
http://s5/mw690/004jFiQNzy7aPNhEQQsf4&690
原点O取在飞机质心处, Xb轴指向机头, ,Yb轴指向机身右方
标签:
股票 |
标签:
股票 |
今天大嘴介绍下无影光源,以前积累的知识,整理了一下给大家发出来。
无影光源是机器视觉光源中一类比较常用的光源,主要利用漫反射面对直射光线进行漫反射,使照射到物体表面的光线更均匀。无影光源可应用于曲面、表面有层次的凹凸、弧形表面等曲面检查;金属面、玻璃面等较强反光表面检查。
标签:
杂谈 |
_nassert作用:告知编译器首地址已经边界对齐,可以进行按字运算。比如对于两个16位数据进行运算时,使用_nassert可将其放入一个字(32位)中进行运行,提升了效率
例:求数组的点积(假设pArray_A和pArray_B分配内存时已经按照前述方法进行过字边界对齐),假设arrayLen == 20
(1) 未优化的代码.
int dotProductFun(short *pArray_A, short *pArray_B,int arrayLen)
{
return resultSum;
}
(2) 使用_nassert和#pragma MUST_INTERATE进行优化的代码
int dotProductFun(short *pArray_A, short *pArray_B,int arrayLen)
{
标签:
杂谈 |
(1)图像/矩阵进行Haar小波的基本原理
首先我们简单了解一下二维小波变换的塔式结构。我们知道,一维小波变换其实是将一维原始信号分别经过低通滤波和高通滤波以及二元下抽样得到信号的低频部分L和高频部分H。而根据Mallat算法,二维小波变换可以用一系列的一维小波变换得到。对一幅m行n列的图像,二维小波变换的过程是先对图像的每一行做一维小波变换,得到L和H两个对半部分;然后对得到的LH图像(仍是m行n列)的每一列做一维小波变换。这样经过一级小波变换后的图像就可以分为LL,HL,LH,HH四个部分,如下图所示,就是一级二维小波变换的塔式结构:
http://s16/mw690/004jFiQNzy6H7musOzZff而二级、三级以至更高级的二维小波变换则是对上一级小波变换后图像的左上角部分(LL部分)再进行一级二维小波变换,是一个递归过程。下图是三级二维小波变换的塔式结构图:
http://s7/mw690/004jFiQNzy6H7musQpE86一个图像经过小波分解后,可以得到一系列不同分辨率的子图像,不同分
标签:
杂谈 |
马氏距离是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧式距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度。
对于向量样本池的均值向量μ,向量样本池协方差矩阵为C,待匹配的样本向量为x,其马氏距离为
((x-μ)'C^(-1)(x-μ))^(1/2)。
马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为C 的随机变量x与y 的的差异程度:
d(x,y) = ((x-y)'C^(-1)(x-y))^(1/2)
其中x 和 y 均为向量,x = {x1,x2,...,xn}
如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧式距离,如果协方差矩阵为对角阵,则其也可称为正规化的欧氏距离
d(x,y) = sqrt(Σ((xi - yi)^2 / Di^2)
其中Di 是xi 的标准差
大嘴评述:在基于先验知识的分类问题中,在判断向量属于类内还是类外时,马氏举例是一个不错的选择,通过样本池求出类内协方差矩阵,实际上相当于通过向量与均值差异值与先验协方差矩
标签:
杂谈 |
今天大嘴简单介绍一下向量(如归一化后的直方图、归一化后的模板向量)相似度匹配之“巴氏距离和巴氏系数”和一小段代码,算法虽小但很实用。(年底了,项目太忙了,尽量抽空发发文章)
先看一下定义
对于在X 数域上的两个离散概率分布p 和q,巴氏距离定义为:
DB(p,q) = -ln(BC(p,q))
其中 BC(p,q) = Σsqrt(p(x)*q(x))
BC 被称作Bhattacharyya 系数(巴氏系数),0≤BC≤1 且0≤DB≤∞
巴氏系数全称为巴塔恰里雅(Bhattacharyya coefficient) 系数,是向量相似度匹配中(如:用于衡量参考模版与候选模版的颜色概率分布的相似度或者说相关性测量)最常用的小算法。
奉上一小段代码(以后大嘴会经常上传一些非涉密性代码),采用的是浮点计算,PC下无所谓,如果用于嵌入式(如DSP)下大家最好改成定点计算,并采用指针相乘,大嘴这里偷懒了,如果编译报错,请大家将中文标点自行改为英文标点,哈!!!
float CalcuBhattacharyya( float *p, float *q, int length)
{
//参数:p和q为指向待匹配的两个向量(一维数组)的首地址指针,//length为数组长度
int i = 0;
float rho