词条 | gabor |
释义 | Gabor嘉宝有着60余年历史的Gabor公司是德国知名的鞋业制造企业,是由Gabor先生于1949年创立的家族企业,公司的总部位于巴伐利亚中部、慕尼黑附近的罗森海姆市,现在已经发展成为一个上市公司,在欧洲的其他国家还有工厂和分支机构,公司共有4300位员工,6个生产基地,每天生产能力为3.3万双鞋。 保证每一双鞋达到品质标准最高值这一理念使Gabor成为一个传统品牌,然而,传统并不能代表一切,在过去十几年中,Gabor公司引进了许多新技术和新多元的产品生产链。只有顶级的皮料和部件才能达到Gabor鞋的标准。高品质同样还要求精湛的手工技术,做一双Gabor鞋需要250个独立的组件,45种不同的材料,140多道加工工序,每双鞋在经过140多道工序后,员工还有很多机器以外的精细手工需要操作。Gabor鞋的制造专由奥地利、斯洛伐克和葡萄牙这些位于欧洲的工厂完成,有非常严格的标准和检查制度,以保证所有工厂生产的品质是一样的。 成功的理念公式数个世纪以来都没有更改。每一双Gabor鞋都遵循三个标准而设计制造:时尚、品质、舒适。将这三个要素的完美结合是Gabor品牌的标识,也是这一点使Gabor在女鞋时尚界前沿稳坐一席。 Gabor有六大产品系列1. Trend这是一个所谓超时尚的产品系列,它紧随时代潮流,非常现代。其在整个鞋的产量中比重不大。 2. Fashion不失时尚,但不是单为最赶时髦的某一类人设计的,而是比较大众化,适合全球销售的一个产品系列。 3. Sport休闲、舒适,适于全天日常穿着。Fashion和Sport产品系列占总产量的60%。 4. Comfort这是专为成熟女性设计的系列。 5. Jolly给年轻人设计的一个系列,前卫、个性、色彩多样。 6. GaborMan男士鞋也分为几个小的系列:运动、优雅、商务。 Gabor函数Gabor变换属于加窗傅立叶变换,Gabor函数可以在频域不同尺度、不同方向上提取相关的特征。另外Gabor函数与人眼的生物作用相仿,所以经常用作纹理识别上,并取得了较好的效果。二维Gabor函数可以表示为: 其中: v的取值决定了Gabor滤波的波长,u的取值表示Gabor核函数的方向,K表示总的方向数。参数决定了高斯窗口的大小,这里取。程序中取4个频率(v=0, 1, ..., 3),8个方向(即K=8,u=0, 1, ... ,7),共32个Gabor核函数。不同频率不同方向的Gabor函数可通过下图表示: 图片来源:GaborFilter.html 图片来源:http://www.bmva.ac.uk/bmvc/1997/papers/033/node2.html 三、代码实现 Gabor函数是复值函数,因此在运算过程中要分别计算其实部和虚部。代码如下: private void CalculateKernel(int Orientation, int Frequency) { double real, img; for(int x = -(GaborWidth-1)/2; x<(GaborWidth-1)/2+1; x++) for(int y = -(GaborHeight-1)/2; y<(GaborHeight-1)/2+1; y++) { real = KernelRealPart(x, y, Orientation, Frequency); img = KernelImgPart(x, y, Orientation, Frequency); KernelFFT2[(x+(GaborWidth-1)/2) + 256 * (y+(GaborHeight-1)/2)].Re = real; KernelFFT2[(x+(GaborWidth-1)/2) + 256 * (y+(GaborHeight-1)/2)].Im = img; } } private double KernelRealPart(int x, int y, int Orientation, int Frequency) { double U, V; double Sigma, Kv, Qu; double tmp1, tmp2; U = Orientation; V = Frequency; Sigma = 2 * Math.PI * Math.PI; Kv = Math.PI * Math.Exp((-(V+2)/2)*Math.Log(2, Math.E)); Qu = U * Math.PI / 8; tmp1 = Math.Exp(-(Kv * Kv * ( x*x + y*y)/(2 * Sigma))); tmp2 = Math.Cos(Kv * Math.Cos(Qu) * x + Kv * Math.Sin(Qu) * y) - Math.Exp(-(Sigma/2)); return tmp1 * tmp2 * Kv * Kv / Sigma; } private double KernelImgPart(int x, int y, int Orientation, int Frequency) { double U, V; double Sigma, Kv, Qu; double tmp1, tmp2; U = Orientation; V = Frequency; Sigma = 2 * Math.PI * Math.PI; Kv = Math.PI * Math.Exp((-(V+2)/2)*Math.Log(2, Math.E)); Qu = U * Math.PI / 8; tmp1 = Math.Exp(-(Kv * Kv * ( x*x + y*y)/(2 * Sigma))); tmp2 = Math.Sin(Kv * Math.Cos(Qu) * x + Kv * Math.Sin(Qu) * y) - Math.Exp(-(Sigma/2)); return tmp1 * tmp2 * Kv * Kv / Sigma; } 有了Gabor核函数后就可以采用前文中提到的“离散二维叠加和卷积”或“快速傅立叶变换卷积”的方法求解Gabor变换,并对变换结果求均值和方差作为提取的特征。32个Gabor核函数对应32次变换可以提取64个特征(包括均值和方差)。由于整个变换过程代码比较复杂,这里仅提供测试代码供下载。该代码仅计算了一个101×101尺寸的Gabor函数变换,得到均值和方差。代码采用两种卷积计算方式,从结果中可以看出,快速傅立叶变换卷积的效率是离散二维叠加和卷积的近50倍。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。