原子微型结构信息应用到局部图形信息存储的猜想
??? 昨天想著看一些圖形學方面的知識,在CSDN上看到說Gabor函數可以精確是被圖形細微處。于是從網上找了下面這么一篇文章看看:
二、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
三、代碼實現(xiàn)
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倍。
好長時間沒有碰過卷積函數,在CSDN上查找說卷積函數是將時域轉換為頻域的方法,Gauss變換則是Gauss函數對圖像進行卷積。于是在google上搜Gauss函數,在臺灣的一個大學里面找到下面內容:[http://phy.ntnu.edu.tw/~moe89/GH/g4/myweb3/gau-fun.html]
???? 高斯函數 :
?
?
?
?
?
?
?
?
?
?
?
?
?
?
????
X 0 :波包的平均位置 ?
Δ:波包的寬度 (deviation)?
后來一看才知道這是在講述量子化學,忽然發(fā)現(xiàn),量子化不就是離散化嘛,量子化學中的波函數不就是從光學中的波函數中衍生過來的嘛,呵呵,發(fā)現(xiàn)原來是這么的接近,量子化學可以通過光學性能得到發(fā)展,那么圖片中的信息存儲為什么不可以采用原子似的空間結構存儲呢!既然原子的薛定諤方程可以精確的描述原子的波函數信息,那么,圖片中的信息(波現(xiàn)象是否可以區(qū)域規(guī)劃,形成更精確的薛定諤方程,也就是說比小波函數具有更高的局部區(qū)分能力。當然,近似化的薛定諤方程不就是可以更為細致的描述局部的圖形變換。
轉載于:https://www.cnblogs.com/ubunoon/archive/2008/04/18/2058918.html
總結
以上是生活随笔為你收集整理的原子微型结构信息应用到局部图形信息存储的猜想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【竞赛总结】安全AI之人脸识别对抗
- 下一篇: Requests获取连接的IP地址