導航:首頁 > 源碼編譯 > 空間分割演算法

空間分割演算法

發布時間:2022-12-10 03:08:42

① 大數據時代空間數據挖掘的認識及其思考

引言

空間數據挖掘(Spatial Data Mining,SDM)即找出開始並不知道但是卻隱藏在空間數據中潛在的、有價值的規則的過程。具體來說,空間數據挖掘就是在海量空間數據集中,結合確定集、模糊集、仿生學等理論,利用人工智慧、模式識別等科學技術,提取出令人相信的、潛在有用的知識,發現空間數據集背後隱藏的規律、聯系,為空間決策提供理論技術上的依據[1]。

1.空間數據挖掘的一般步驟

空間數據挖掘系統大致可以分為以下步驟:

(1)空間數據准備:選擇合適的多種數據來源,包括地圖數據、影像數據、地形數據、屬性數據等。

(2)空間數據預處理和特徵提取:數據預處理目的是去除數據中的雜訊,包括對數據的清洗、數據的轉換、數據的集成等。特徵提取是剔除掉冗餘或不相關的特徵並將特徵轉化為適合數據挖掘的新特徵。

(3)空間數據挖掘和知識評估:採用空間數據挖掘技術對空間數據進行分析處理和預測,從而發現數據背後的某種聯系。然後結合具體的領域知識進行評估,看是否達到預期效果。

2.空間數據挖掘的方法研究

空間數據挖掘是一門綜合型的交叉學科,結合了計算機科學、統計學、地理學等領域的很多特性,產生了大量處理空間數據的挖掘方法。

2.1 空間關聯規則

關聯規則挖掘是尋找數據項之間的聯系,表達式形式是X→Y,其中X與Y是兩種不相交的數據項集,即X∩Y=?覫。KOPERSKI K等人將關聯規則與空間資料庫相結合,提出了空間關聯規則挖掘[2]。空間關聯規則將數據項替換為了空間謂詞,一般表達形式如下:

A1∧A2∧…∧An→B1∧B2∧…∧Bm(3)

令A=(A1,A2,…,An),B=(B1,B2,…,Bm),A和B分別表示Ai和Bj的謂詞集合,A和B可以是空間謂詞或非空間謂詞,但是必須至少包含一個空間謂詞且A∩B=?覫。SHEKHAR S和HUANG Y針對空間關聯規則的特點提出了把關聯規則的思想泛化成空間索引點集的空間同位規則的概念,在不違背空間相關性的同時用鄰域替換掉了事務[3]。時空關聯不僅涉及事件在空間中的關聯,還考慮了空間位置和時間序列因素。國內的柴思躍、蘇奮振和周成虎提出了基於周期表的時空關聯規則挖掘方法[4]。

2.2 空間聚類

空間聚類分析是普通聚類分析的擴展,不能完全按照處理普通數據的聚類分析方法來處理空間數據。由於存在地理學第一定律,即空間對象之間都存在一定的相關性,因此在空間聚類分析中,對於簇內的定義,要考慮空間自相關這一因素。通過對空間數據進行自相關分析,可判斷對象之間是否存在空間相關性,從而可合理判斷出對象是否可以分為一簇。

基本的聚類挖掘演算法有:

(1)劃分聚類演算法:存在n個數據對象,對於給定k個分組(k≤n),將n個對象通過基於一定目標劃分規則,不停迭代、優化,直到將這n個對象分配到k個分組中,使得每組內部對象相似度大於組之間相似度。

(2)層次聚類演算法:通過將數據不停地拆分與重組,最終把數據轉為一棵符合一定標準的具有層次結構的聚類樹。

(3)密度聚類演算法:用低密度的區域對數據對象進行分割,最終將數據對象聚類成為若干高密度的區域。

(4)圖聚類演算法:用空間結點表示每個數據對象,然後基於一定標准形成若乾子圖,最後把所有子圖聚類成一個包含所有空間對象的整圖,子圖則代表一個個空間簇。

(5)網格聚類演算法:把空間區域分割成具有多重解析度的和有網格結構特性的若干網格單元,在網格單元上對數據進行聚類。

(6)模型聚類演算法:藉助一定的數學模型,使用最佳擬合數據的數學模型來對數據進行聚類,每一個簇用一個概率分布表示。

僅採用一種演算法通常無法達到令人滿意的預期結果,王家耀、張雪萍、周海燕將遺傳演算法與K-均值演算法結合提出了用於空間聚類分析的遺傳K-均值演算法[5]。現實空間環境中,存在很多像道路、橋梁、河流的障礙物,張雪萍、楊騰飛等人把K-Medoids演算法與量子粒子群演算法結合進行帶有空間障礙約束的聚類分析[6]。

2.3 空間分類

分類,簡單地說是通過學習得到一定的分類模型,然後把數據對象按照分類模型劃分至預先給定類的過程。空間分類時,不僅考慮數據對象的非空間屬性,還要顧及鄰近對象的非空間屬性對其類別的影響,是一種監督式的分析方法。

空間分類挖掘方法有統計方法、機器學習的方法和神經網路方法等。貝葉斯分類器是基於統計學的方法,利用數據對象的先驗概率和貝葉斯公式計算出其後驗概率,選擇較大後驗概率的類作為該對象映射的類別。決策樹分類器是機器學習的方法,採取從上到下的貪心策略,比較決策樹內部節點的屬性值來往下建立決策樹的各分支,每個葉節點代表滿足某個條件的屬性值,從根節點到葉節點的路徑表示一條合適的規則。支持向量機也是機器學習的方法,思路是使用非線性映射把訓練數據集映射到較高維,然後尋找出最大邊緣超平面,將數據對象分類。神經網路是一種模擬人神經的網路,由一組連接的輸入和輸出單元組成,賦予各個連接相應的權值,通過調節各連接的權值使得數據對象得到正確分類。

針對融入空間自相關性的空間分類挖掘,SHEKHAR S等人使用空間自回歸模型和基於貝葉斯的馬可夫隨機場進行空間分類挖掘[7],汪閩、駱劍承、周成虎等人將高斯馬爾可夫隨機場與支持向量機結合並將其用於遙感圖像的信息提取[8]。

2.4 其他空間挖掘方法

空間數據挖掘的方法多種多樣,其他還包括:空間分析的方法,即利用GIS的方法、技術和理論對空間數據進行加工處理,從而找出未知有用的信息模式;基於模糊集、粗糙集和雲理論的方法可用來分析具有不確定性的空間數據;可視化方法是對空間數據對象的視覺表示,通過一定技術用圖像的形式表達要分析的空間數據,從而得到其隱含的信息;國內張自嘉、岳邦珊、潘琦等人將蟻群演算法與自適應濾波的模糊聚類演算法相結合用以對圖像進行分割[9]。

3.結論

空間數據挖掘作為數據挖掘的延伸,有很好的傳統數據挖掘方法理論的基礎,雖然取得了很大進步,然而其理論和方法仍需進一步的深入研究。伴隨著大數據時代,面對越來越多的空間數據,提升數據挖掘的准確度和精度是一個有待研究的問題。同時現在流行的空間數據挖掘演算法的時間復雜度仍停留在O(nlog(n))~O(n3)之間,處理大量的異構數據,數據挖掘演算法的效率也需要進一步提高。數據挖掘在雲環境下已經得到很好的應用[10],對於處理空間數據的空間雲計算是有待學者們研究的方向。大多數空間數據挖掘演算法沒有考慮含有障礙約束的情況,如何解決現實中障礙約束問題值得探討。帶有時間屬性的空間數據呈現出了一種動態、可變的空間現象,時空數據挖掘將是未來研究的重點。

由於數據挖掘涉及多種學科,其基本理論與方法也已經比較成熟,針對空間數據挖掘,如何合理地利用和拓展這些理論方法以實現對空間數據的挖掘仍將是研究人員們需要長期努力的方向。

參考文獻

[1] 李德仁,王樹良,李德毅.空間數據挖掘理論與應用(第2版)[M].北京:科學出版社,2013.

[2] KOPERSKI K, HAN J W. Discovery of spatial association rules in geographic information databases[C]. Procedings of the 4th International Symposium on Advances in Spatial Databases, 1995: 47-66.

[3] SHEKHAR S, HUANG Y. Discovering spatial co-location patterns: a summary of results[C]. Procedings of the 7th International Symposium on Advances in Spatial and Temporal Databases, 2001:236-256.

[4] 柴思躍,蘇奮振,周成虎.基於周期表的時空關聯規則挖掘方法與實驗[J].地球信息科學學報,2011,13(4):455-464.

[5] 王家耀,張雪萍,周海燕.一個用於空間聚類分析的遺傳K-均值演算法[J].計算機工程,2006,32(3):188-190.

[6] Zhang Xueping, Du Haohua, Yang Tengfei, et al. A novel spatial clustering with obstacles constraints based on PNPSO and K-medoids[C]. Advances in Swarm Intelligence, Lecture Notes in Computer Science (LNCS), 2010: 476-483.

[7] SHEKHAR S, SCHRATER P R, VATSAVAI R R, et al.Spatial contextual classification and prediction models for mining geospatial data[J]. IEEE Transactions on Multimedia, 2002, 4(2):174-187.

[8] 汪閩,駱劍承,周成虎,等.結合高斯馬爾可夫隨機場紋理模型與支撐向量機在高解析度遙感圖像上提取道路網[J].遙感學報,2005,9(3):271-275.

[9] 張自嘉,岳邦珊,潘琦,等.基於蟻群和自適應濾波的模糊聚類圖像分割[J].電子技術應用,2015,41(4):144-147.

[10] 石傑.雲計算環境下的數據挖掘應用[J].微型機與應用,2015,34(5):13-15.

來源 | AET電子技術應用

② 急用!!!數據挖掘的六種常用演算法和技術分別是什麼

數據挖掘技術和演算法技術:概念方法

演算法:一步一步具體實現的細節

不同的目標要調用不同的技術

數據挖掘根據其目標分為說明性(Prescriptive)和描述性 (Descriptive)數據挖掘兩種

不同的Data Type調用不同技術

三種數據挖掘技術

自動聚集檢測;決策樹;神經網路

原因: 大量的商業軟體應用

覆蓋了數據挖掘一個較廣的范圍

直接數據挖掘目標是預言,估值,分類,預定義目標變數的特徵行為

神經元網路;決策樹

間接數據挖掘:沒有目標變數被預言,目的是發現整個數據集的結構

聚集檢測

自動聚集檢測

方法

K-均值是講整個數據集分為K個聚集的演算法。

K-均值聚集檢測如何工作

隨機選取K個記錄,作為種子節點;

對剩餘的記錄集合,計算每個記錄與K個種子節點的距離,將每個記錄歸到最近的那個種子節點,這樣整個記錄集初次劃分為K個聚集;

對每個聚集,計算聚集的質心(聚集中心點);

以每個質心為種子節點,重復上述步驟,直至聚集不再改變。

Consequences of Choosing Clustering

選擇距離函數

選擇合適的聚集數

對聚集的解釋

構造決策樹

可視化看聚集如何受輸入變數的影響

單變數測試

什麼時候使用聚集檢測

決策樹

決策樹分類

決策樹分為分類樹和回歸樹兩種,分類樹對離散變數做決策樹,回歸樹對連續變數做決策樹。

一般的數據挖掘工具,允許選擇分裂條件和修剪規則,以及控制參數(最小節點的大小,最大樹的深度等等),來限制決策樹的overfitting。

決策樹如何工作

決策樹是一棵樹,樹的根節點是整個數據集合空間,每個分節點是對一個單一變數的測試,該測試將數據集合空間分割成兩個或更多塊。每個葉節點是屬於單一類別的記錄。

首先,通過訓練集生成決策樹,再通過測試集對決策樹進行修剪。決策樹的功能是預言一個新的記錄屬於哪一類。

決策樹如何構建

通過遞歸分割的過程構建決策樹。

尋找初始分裂

整個訓練集作為產生決策樹的集合,訓練集每個記錄必須是已經分好類的。

決定哪個屬性(Field)域作為目前最好的分類指標。一般的做法是窮盡所有的屬性域,對每個屬性域分裂的好壞做出量化,計算出最好的一個分裂。量化的標準是計算每個分裂的多樣性(diversity)指標GINI指標。

樹增長到一棵完整的樹

重復第一步,直至每個葉節點內的記錄都屬於同一類。

數據的修剪

選擇決策樹的結果

處理輸入變數

樹和規則

選擇最好的屬性的能力

什麼時候使用決策樹

神經網路

神經元模型

生物模型

人工神經元

神經網模型

網的拓撲結構:層次(前饋,反饋);全連通

學習方法:有教員的(出入均知道);無教員的(輸出不知道)

運行機制:同步;非同步

神經網路的基本特點

大量簡單節點的復雜連接;高度並行處理;分布式存儲,信息存在整個網中,用權值體現出來,有聯想能力,可以從一個不完整的信息恢復出完整信息;自組織、自學習。

六種常用於模式識別的神經網路分類器

Hopfield Net

Harmming Net

Carpenter/Grossberg 分類器

單層感知網

多層感知網

Kohonen的自組織特性圖

③ 常見的提高消隱演算法效率的方法有哪些

提高消隱演算法效率的常見方法(利用連貫性,將透視投影轉換成平行投影,包圍盒技術,背面剔除,空間分割技術,物體分層表示)
選擇好的演算法, 小心地實現, 同時確定程序不做額外的事。例如, 即使世界上最優化的字元復制循環也比不上不用復制。
當擔心效率時, 要保持幾樣事情在視野中, 這很重要。首先, 雖然效率是個非常流行的話題, 它並不總是象人們想的那樣重要。大多數程序的大多數代碼並不是時間緊要的。當代碼不是時間緊要時, 通常把代碼寫得清楚和可移植比達到最大效率更重要。記住, 電腦運行得非常非常快, 那些看起來 「低效率」 的代碼, 也許可以編譯得比較有效率, 而運行起來也沒有明顯的延時。
試圖預知程序的 「熱點」 是個非常困難的事。當要關心效率時, 使用 profiling軟體來確定程序中需要得到關注的地方。通常, 實際計算時間都被外圍任務佔用了 (例如 I/O 或內存的分配), 可以通過使用緩沖和超高速緩存來提高速度。
即使對於時間緊要的代碼, 最無效的優化技巧是忙亂於代碼細節。許多常被建議的 「有效的代碼技巧」, 即使是很簡單的編譯器也會自動完成 (例如, 用移位運算符代替二的冪次方乘)。非常多的手動優化有可能是代碼變得笨重而使效率反而低下了, 同時幾乎不可移植。例如, 也許可以在某台機器上提了速, 但在另一台機器上去變慢了。任何情況下, 修整代碼通常最多得到線性信能提高; 更好的演算法可以得到更好的回報。

④ 如何用區域生長法實現圖像分割

區域生長法圖像分割是直接根據像素的相似性和連通性來對圖像進行聚類的演算法。基本原理是,給出若干種子點,然後依次對這些種子點進行如下操作,直到種子點集合為空:判斷種子點四鄰域或八鄰域的像素點是否和種子點相似(灰度相似或其他測度相似),如果相似則將該點加入種子點集合,否則不作處理。
該演算法原理很簡單,但在數據結構的組織上卻需要技巧,本文介紹一種簡易的數據組織方式實現該演算法。

如上圖所示,左圖為一幅W*H大小的圖像示意圖,利用區域生長法圖像分割演算法,該圖像被分割(聚類)為7塊;右圖為相應的數據結構,圖像分割的結果屬於圖像空間數據,其實就是一系列的像素點坐標數組或與像素點坐標直接關聯的屬性數組如FLAG的數組等,這個數組的維度一定是W*H,而分割結果體現在數組元素的排列順序:同一類別的元素連續存儲。然而類別的界限無法用該數組表明,而只能用另外一個描述數組,這里我們稱之為圖像空間數據的「元數據」數據,這個數組的有效維度為空間數據的類別數,即7,每個元素代表的是空間數據數組中每個類別的元素個數,其實也就相應地表明了每個類別的指針位置。

⑤ 主存空間的分配和回收,

#include "iostream.h"
#include "iomanip.h"

#define nofreearea 2
#define noadequacyarea 3
#define allocated 4

#define noprocess 2
#define nosuchprocess 3
#define reclaimed 4

typedef struct TUN
{
int address;
int size;
char name;
struct TUN *next;
} usedarea , *usedtable;

typedef struct TFN
{
int address;
int size;
struct TFN *next;
} freearea, *freetable;

usedtable usedTable = NULL;
freetable freeTable = NULL;

int alloc( char processname , int processsize )
{

if( freeTable == NULL )
return 1;
freetable p = freeTable;
freetable q = p;

while( p != NULL && p->size < processsize )
{
q = p;
p = p->next;
}

if( p == NULL )
return 3;

usedtable x = new usedarea;
x->address = p->address;
x->size = processsize;
x->name = processname;
x->next = NULL;

if( p->size > processsize )
{
p->size -= processsize;
p->address += processsize;
}

else
{
if( p == freeTable )
freeTable = NULL;
else
q->next = p->next;
delete p;
}

usedtable r = usedTable;
usedtable t = r;

while( r != NULL && r->address < x->address )
{
t = r;
r = r->next;
}

if( usedTable == NULL )
usedTable = x;
else
{
x->next = r;
t->next = x;
}

return 4;
}

int Reclaim( char processname )
{
if( usedTable == NULL )
return 1;
usedtable p = usedTable;
usedtable q = p;
while( p != NULL && p->name != processname )
{
q = p;
p = p->next;
}

if( p == NULL )
return 3;

freetable r = freeTable;
freetable t = r;
freetable x;
while( r != NULL && r->address < p->address )
{
t = r;
r = r->next;
}

x = new freearea;
x->address = p->address;
x->size = p->size;
x->next = NULL;

if( r == freeTable )
{
x->next = r;
freeTable = x;
t = freeTable;
}
else
{
x->next = r;
t->next = x;
}

while( t->next != NULL && t->address + t->size == t->next->address )
{
t->size += t->next->size;
r = t->next;
t->next = t->next->next;
delete r;
}

if( p == usedTable )
{
usedTable = usedTable->next;
}
else
q->next = p->next;
delete p;

return 4;
}

int Init()
{
freeTable = new freearea;
freeTable->address = 0;
freeTable->size = 128;
freeTable->next = NULL;
return 1;
}

void processrequest()
{
char processname;
int processsize;
cout<<"...................."<<endl;
cout<<"作業名: ";
cin >> processname;
cout<<"作業長度: ";
cin >> processsize;
if(processsize<=128)
{int i;
if( alloc( processname , processsize) == 4 )
{
i=i+processsize;
if(i>128)
{cout<<"該作業超出空間"<<endl;
}
if(i<=128)
cout<<"該作業已成功獲得所需空間"<<endl;
i=i+processsize;
cout<<"........................................"<<endl;

}
else
cout<<"該作業超出空間,沒有獲得所需空間"<<endl;
cout<<"........................................"<<endl;
return;
}
if(processsize>128)
{cout<<"該作業超出空間"<<endl;
cout<<"........................................"<<endl;
}

}

void processreclaim()
{
int processname;
cout<<"...................."<<endl;
cout<<"作業名: ";
cin >>processname;
int result = Reclaim( processname );
if( result == 4 )
cout<<"該作業已成功回收"<<endl;
else if( result == 2 || result == 1 )
cout<<"系統沒有作業或該作業不存在"<<endl;
cout<<"...................."<<endl;

}

void freeTablePrint()
{
cout<<endl<<endl<<endl<<"***********************************"<<endl;
cout<<setw(10)<<"address"<<setw(10)<<"length"<<setw(10)<<"state"<<endl<<endl;
freetable p = freeTable;
usedtable q = usedTable;
int x , y;
while( p || q )
{
if( p )
x = p->address;
else
x = 0x7fffffff;
if( q )
y = q->address;
else
y = 0x7fffffff;

if( x < y )
{
cout<<setw(10)<<p->address<<setw(10)<<p->size<<setw(10)<<"空閑"<<endl;
p = p->next;
}
if( x > y )
{
cout<<setw(10)<<q->address<<setw(10)<<q->size<<setw(10)<<"已分配"<<setw(10)<<"ID="<<q->name<<endl;
q = q->next;
}
}
cout<<endl<<endl<<endl<<"************************************"<<endl<<endl<<endl;

}

void main()
{
Init();
int choose;
bool exitFlag = false;
while( !exitFlag )
{

cout<<"************************0 - 退出 ************************"<<endl;
cout<<"************************1 - 分配主存 ************************"<<endl;
cout<<"************************2 - 回收主存 ************************"<<endl;
cout<<"************************3 - 顯示主存 ************************"<<endl<<endl<<endl;
cout<<"************************選擇所要執行的操作:";
cin>>choose;
switch( choose )
{
case 0:
exitFlag = true;
break;
case 1:
processrequest();
break;
case 2:
processreclaim();
break;
case 3:
freeTablePrint();
break;
}
}
}

⑥ 傳統的圖像分割方法有哪些

1.基於閾值的分割方法

灰度閾值分割法是一種最常用的並行區域技術,它是圖像分割中應用數量最多的一類。閾值分割方法實際上是輸入圖像f到輸出圖像g的變化
其中,T為閾值;對於物體的圖像元素,g(i,j)=1,對於背景的圖像元素,g(i,j)=0。

由此可見,閾值分割演算法的關鍵是確定閾值,如果能確定一個適合的閾值就可准確地將圖像分割開來。閾值確定後,閾值與像素點的灰度值比較和像素分割可對各像素並行地進行,分割的結果直接給出圖像區域。

閾值分割的優點是計算簡單、運算效率較高、速度快。在重視運算效率的應用場合(如用於軟體實現),它得到了廣泛應用。

2.基於區域的分割方法

區域生長和分裂合並法是兩種典型的串列區域技術,其分割過程後續步驟的處理要根據前面步驟的結果進行判斷而確定。

(1)區域生長

區域生長的基本思想是將具有相似性質的像素集合起來構成區域。具體先對每個需要分割的區域找一個種子像素作為生長的起點,然後將種子像素周圍鄰域中與種子像素有相同或相似性質的像素(根據某種事先確定的生長或相似准則來判定)合並到種子像素所在的區域中。將這些新像素當作新的種子像素繼續進行上面的過程,直到再沒有滿足條件的像素可被包括進來。這樣一個區域就長成了。

(2)區域分裂合並

區域生長是從某個或者某些像素點出發,最後得到整個區域,進而實現目標提取。分裂合並差不多是區域生長的逆過程:從整個圖像出發,不斷分裂得到各個子區域,然後再把前景區域合並,實現目標提取。分裂合並的假設是對於一幅圖像,前景區域是由一些相互連通的像素組成的,因此,如果把一幅圖像分裂到像素級,那麼就可以判定該像素是否為前景像素。當所有像素點或者子區域完成判斷以後,把前景區域或者像素合並就可得到前景目標。

3.基於邊緣的分割方法

基於邊緣的分割方法是指通過邊緣檢測,即檢測灰度級或者結構具有突變的地方,確定一個區域的終結,即另一個區域開始的地方。不同的圖像灰度不同,邊界處一般有明顯的邊緣,利用此特徵可以分割圖像。

4.基於特定理論的分割方法

圖像分割至今尚無通用的自身理論。隨著各學科新理論和新方法的提出,出現了與一些特定理論、方法相結合的圖像分割方法,主要有:基於聚類分析的圖像分割方法、基於模糊集理論的分割方法等。

5.基於基因編碼的分割方法

基於基因編碼的分割方法是指把圖像背景和目標像素用不同的基因編碼表示,通過區域性的劃分,把圖像背景和目標分離出來的方法。該方法具有處理速度快的優點,但演算法實現起來比較難。

6.基於小波變換的分割方法

小波變換是近年來得到廣泛應用的數學工具,它在時域和頻域都具有良好的局部化性質,並且小波變換具有多尺度特性,能夠在不同尺度上對信號進行分析,因此在圖像處理和分析等許多方面得到應用。

基於小波變換的閾值圖像分割方法的基本思想是首先由二進小波變換將圖像的直方圖分解為不同層次的小波系數,然後依據給定的分割准則和小波系數選擇閾值門限,最後利用閾值標出圖像分割的區域。整個分割過程是從粗到細,由尺度變化來控制,即起始分割由粗略的L2(R)子空間上投影的直方圖來實現,如果分割不理想,則利用直方圖在精細的子空間上的小波系數逐步細化圖像分割。分割演算法的計算會與圖像尺寸大小呈線性變化。

7.基於神經網路的分割方法

近年來,人工神經網路識別技術已經引起了廣泛的關注,並應用於圖像分割。基於神經網路的分割方法的基本思想是通過訓練多層感知機來得到線性決策函數,然後用決策函數對像素進行分類來達到分割的目的。這種方法需要大量的訓練數據。神經網路存在巨量的連接,容易引入空間信息,能較好地解決圖像中的雜訊和不均勻問題。選擇何種網路結構是這種方法要解決的主要問題。

⑦ 黃金分割簡單演算法

1比0.618啊~ 黃金分割比例。~

例如說人體成黃金比的話 上身下身比為0.618:1

圖形的話 長寬比是1:0.618 之類的~

還有黃金分割拍照的方法是。 長和寬都×0.618 可以畫出4條線吧。~
拍人的話最好是眼睛在那4個點上。~

閱讀全文

與空間分割演算法相關的資料

熱點內容
java常用的伺服器 瀏覽:277
集結APP在哪裡下載 瀏覽:798
歐洲cf玩什麼伺服器 瀏覽:527
如何連接另一台電腦上的共享文件夾 瀏覽:679
如何讓桌面文件夾搬家到e盤 瀏覽:71
java自動格式化 瀏覽:617
ipad怎麼查看文件夾大小 瀏覽:581
手工粘土解壓球 瀏覽:550
在線視頻教育源碼 瀏覽:39
快四十學什麼編程 瀏覽:754
gnumakelinux 瀏覽:537
視易峰雲伺服器怎麼改系統 瀏覽:535
javamap取值 瀏覽:768
mac和win磁碟加密軟體 瀏覽:474
蘋果為什麼會連接不到伺服器 瀏覽:726
pdf格式文件如何保存 瀏覽:303
小霸王伺服器tx什麼意思 瀏覽:75
解釋dns命令 瀏覽:584
dmx512怎麼編程 瀏覽:744
北京雲主機17t雲伺服器 瀏覽:232