差分盒維數的計算方法

2021-06-26 20:07:28 字數 1684 閱讀 2082

差分盒維數(differential box-counting,dbc),可以作為影象表面紋理粗糙程度的度量,因為它有很好的精確性和適用性,而且能滿足計算效率和動態特性的要求。

處理流程:

對於乙個m*m大小的影象,在三維空間中,(x,y)代表空間的位置,z代表其對應點的灰度值gray(x,y)。 1、

影象分塊,s*s,r = s/m

2、在每乙個s*s的分塊中,都有乙個盒子柱s*s*s』。如果最大灰度值為g,通常為256,則g/s』 = m/s。 3、

計算每個分塊的最大灰度值和最小灰度值,它們分別落在盒子k和l中,則

nr = k-l+1 4、

nr = sum(nr),d = log(nr) / log(1/r) 5、

對影象進行不同的分塊,將最後結果進行最小二乘擬合。

question 1、

s』怎麼理解?

s』表示需要多少個盒子覆蓋整個灰度曲面。

2、怎麼理解灰度最大值和最小值落在盒子k和l中?

對影象進行分塊,可能看成是對其按一定比例縮小的過程,對於灰度也要按照相同的比例縮小。比如分塊大小為2*2,影象大小為256*256,則k = maxgray/(256/2),同樣,l = mingray /(256/2)。

**實現:

function fd=box_frac_dem(x); 

% 差分盒維數

% example:

% x=double(imread('rice.tif'));

% fd=box_frac_dem(x);

if size(x,1)~=size(x,2); %m*n維影象,檢查m和n是否相等

error('the size of x must nxn.');

end

b=size(x,1);

if mod(log2(b),1)>0;

error('the size of x must 2^n'); %影象的大小必須是2的n次方

end

t=log2(b); %假設影象大小為256*256,則t = 8

s=2.^(1:t); % s = 2,4,8,16,32,64,128,256 求2的冪

nr=zeros(1,t); % nr = 0 0 0 0 0 0 0 0

for k=1:t;

d=s(k); %設定不同的視窗大小

h=256/d; % let b instead of 256 for the size [2^nx2^n]

for m=1:h;

for n=1:h;

a=x(d*(m-1)+[1:d],d*(n-1)+[1:d]); %分塊,儲存到a

mn=min(a(1:end)); %最小灰度值

mx=max(a(1:end)); %最大灰度值

nr=fix(mx/d)-fix(mn/d)+1; %取整運算

nr(k)=nr(k)+nr;

end

end

end

r=b./s;

p=polyfit(log10(r),log10(nr),1); %最小二乘擬合

fd=p(1);

一維空間的分數維大於1.0小於2.0,二維空間的分數為大於2.0小於3.0。

FPGA 等效門數的計算方法

1.把fpga 基本單元 如lut ff,esb bram 和實現相同功能的標準門陣列比較,門陣列中包含的門數即為該fpga 基本單元的等效門數,然後乘以基本單元的數目就 可以得到fpga 門數估計值 2.分別用fpga 和標準門陣列實現相同的功能,從中統計出fpga 的等效門數,這種方 法比較多的...

分拆數的第三種計算方法

我們考慮從 ferrers diagram 的原點引出一條 y x y xy x 的直線,它離開這個圖的位置就框處了乙個 h h h times h h h 的正方形,這個正方形被稱為乙個整數拆分的 durfee square。那麼如果我們確認了正方形的邊長是 h hh,它兩側放置的就都是 h le...

AUC的計算方法

在機器學習的分類任務中,我們常用許多的指標,諸如召回率 recall 準確率 precision f1值 auc等。相信這個問題很多玩家都已經明白了,簡單的概括一下,auc are under curve 是乙個模型的評價指標,用於分類任務。那麼這個指標代表什麼呢?這個指標想表達的含義,簡單來說其實...