柵格演算法
A. 請問PHOTOSHOP里的柵格化是啥意思
柵格即像素,柵格化即將矢量圖形轉化為點陣圖,柵格化圖形和字體是為了能夠更好的進行編輯。在Photoshop中未柵格化前的圖形是不可以進行編輯的,比如剛從電腦拖入一張圖片,未進行柵格化是不可以編輯的。
PS柵格化步驟:
1、電腦打開PS。
B. 路徑規劃格柵法概念
自動駕駛的整個工作環境分為兩種網格:自由柵格和障礙柵格。自由柵格指的是某一柵格範圍內不含有任何障礙物。障礙柵格指的是這個柵格範圍內存在障礙物,有的時候可能整個柵格內都布滿障礙物。
C. PS中的柵格化圖層是什麼意思
柵格化圖層簡單理解就是把矢量圖變為像素圖,柵格化後,你放大圖像會發現出現鋸齒,說明已經變為了像素圖,一格格就是一個個像素。某些命令和工具不適用於文字圖層,必須在應用命令或使用工具前柵格化文字。
柵格化,是PS中的一個專業術語,柵格即像素,柵格化即將矢量圖形轉化為點陣圖(柵格圖像)。最基礎的柵格化演算法將多邊形表示的三維場景渲染到二維表面。
柵格化就是把矢量圖轉化成點陣圖。矢量圖跟點陣圖處理方法不同,為了使用點陣圖的處理方法就得進行柵格化。
例如文字層是矢量圖層,未柵格化之前你可以調整字元大小,字體,但是不能填充漸變,不能使用高斯模糊扭曲等濾鏡。柵格化後可以使用濾鏡,填充但是就再也不能改字體字型大小了。
要進行濾鏡、形狀(如分割)、畫筆繪制等處理,圖層內容必須是點陣圖形式,如果是文字,或是帶路徑形狀畫(蒙板矢量圖)、矢量圖案,都為矢量圖不能直接進行以上處理,所以要將這些矢量元素轉成點陣圖形式。俗稱柵格化。
D. 柵格化的基本實現方法
最基礎的柵格化演算法將多邊形表示的三維場景渲染到二維表面。多邊形由三角形的集合表示,三角形由三維空間中的三個頂點表示。在最簡單的實現形式中,柵格化工具將頂點數據映射到觀察者顯示器上對應的二維坐標點,然後對變換出的二維三角形進行合適的填充。 一旦三角形頂點轉換到正確的二維位置之後,這些位置可能位於觀察窗口之外,也可能位於屏幕之內。裁剪就是對三角形進行處理以適合顯示區域的過程。
最常用的技術是Sutherland-Hodgeman裁剪演算法。在這種方法中,每次測試每個圖像平面的四條邊,對於每個邊測試每個待渲染的點。如果該點位於邊界之外,就剔除該點。對於與圖像平的面邊相交的三角形邊,即邊的一個頂點位於圖像內部一個位於外部,那麼就在交叉點插入一個點並且移除外部的點。 傳統的柵格化過程的最後一步就是填充圖像平面中的二維三角形,這個過程就是掃描變換。
第一個需要考慮的問題就是是否需要繪制給定的像素。一個需要渲染的像素必須位於三角形內部、必須未被裁掉,並且必須未被其它像素遮擋。有許多演算法可以用於在三角形內進行填充,其中最流行的方法是掃描線演算法。
由於很難確定柵格化引擎是否會從前到後繪制所有像素,因此必須要有一些方法來確保離觀察者較近的像素不會被較遠的像素所覆蓋。最為常用的一種方法是深度緩存,深度緩存是一個與圖像平面對應的保存每個像素深度的二維數組。每個像素進行繪制的時候都要更新深度緩存中的深度值,每個新像素在繪制之前都要檢查深度緩存中的深度值,距離觀察者較近的像素就會繪制,而距離較遠的都被舍棄。
為了確定像素顏色,需要進行紋理或者濃淡效果計算。紋理圖是用於定義三角形顯示外觀的點陣圖。每個三角形頂點除了位置坐標之外都與紋理以及二維紋理坐標 (u,v) 發生關聯。每次渲染三角形中的像素的時候,都必須在紋理中找到對應的紋素,這是根據在屏幕上像素與頂點的距離在與紋理坐標相關聯的三角形頂點之間插值完成的。在透視投影中,插值是在根據頂點深度分開的紋理坐標上進行的,這樣做就可以避免透視縮減(perspective foreshortening)問題。
在確定像素最終顏色之前,必須根據場景中的所有光源計算像素上的光照。在場景中通常有三種類型的光源。定向光是在場景中按照一個固定方向傳輸並且強度保持不變的光。在現實生活中,由於太陽距離遙遠所以在地球上的觀察者看來是平行光線並且其衰減微乎其微,所以太陽光可以看作是定向光。點光源是從空間中明確位置向所有方向發射光線的光源。在遠距離的物體上的入射光線會有衰減。最後一種是聚光燈,如同現實生活中的聚光燈一樣,它有一個明確的空間位置、方向以及光錐的角度。另外,經常在光照計算完成之後添加一個環境光值以補償光柵化無法正確計算的全局照明效果。
有許多可以用於光柵化的濃淡演算法。所有的濃淡處理演算法都必須考慮與光源的距離以及遮蔽物體法向量與光照入射角。最快的演算法讓三角形中的所有像素使用同樣的亮度,但是這種方法無法生成平滑效果的表面。另外也可以單獨計算頂點的亮度,然後繪制內部像素的時候對頂點亮度進行插值。速度最慢也最為真實的實現方法是單獨計算每點的亮度。常用的濃淡模型有 Gouraud shading 和 Phong shading。
E. 用C++處理圖像時單格柵格的演算法是怎麼樣的,求大神幫忙
不知道你是不是指的光柵化這個步驟.
根據你的圖像,比如有一條直線的方程,x坐標取整數,根據直線得到的y坐標,例如x=1,y=0.2
如果決定用四捨五入,那麼點就畫到(1, 0)點上
在3D坐標的最後一步光柵化上,會麻煩一些,因為可能有多個點的坐標四捨五入後,都要映射到一個點上,這時要計算顏色.看你是點采樣,還是線性采樣什麼的了...
以上個人見解,不對的話見諒
F. 柵格矢量數據轉換的柵格和矢量數據結構相互轉換演算法
矢量結構與柵格結構的相互轉換,一直是地理信息系統的技術難題之一。這主要是由於轉換程序通常佔用較多的內存,涉及復雜的數值運算,而難以在實用系統特別是微機地理信息系統中被採用。近年來已發展了許多高效的轉換演算法,適用於不同的環境。
對於點狀實體,每個實體僅由一個坐標對表示,其矢量結構和柵格結構的相互轉換基本上只是坐標精度轉換問題。線實體的矢量結構由一系列坐標對表示,在變為柵格結構時,除把序列中坐標對變為柵格行列坐標外,還需根據柵格精度要求,在坐標點之間插滿一系列柵格點,這也容易由兩點式直線方程得到;線實體由柵格結構變為矢量結構與將多邊形邊界表示為矢量結構相似。因此以下重點討論多邊形(面實體)的矢量結構與柵格結構相互轉換問題。
G. 什麼是柵格化設計
嘗試通俗一點:在一個有限的、固定的平面上,用水平線和垂直線(虛擬的線,「參考線」),將平面劃分成有規律的一系列「格子」(虛擬的格子),並依託這些格子、或以格子的邊線為基準線,來進行有規律的版面布局。柵格化設計 就是把網頁的寬度分成固定的相同寬度,然後列出各種組合的可能,以方便在進行頁面呈現的時候能夠快速的進行布局,通常分成12等分或者24等分。
一旦三角形頂點轉換到正確的二維位置之後,這些位置可能位於觀察窗口之外,也可能位於屏幕之內。裁剪就是對三角形進行處理以適合顯示區域的過程。
最常用的技術是Sutherland-Hodgeman裁剪演算法。在這種方法中,每次測試每個圖像平面的四條邊,對於每個邊測試每個待渲染的點。如果該點位於邊界之外,就剔除該點。對於與圖像平的面邊相交的三角形邊,即邊的一個頂點位於圖像內部一個位於外部,那麼就在交叉點插入一個點並且移除外部的點。
H. 柵格化是什麼意思
柵格化是將矢量圖形格式表示的圖像轉換成點陣圖以用於顯示器或者列印機輸出的過程。
柵(shan)格化,是 Photoshop 中的一個專業術語,柵格即像素,柵格化即將矢量圖形轉化為點陣圖(柵格圖像)。最基礎的柵格化演算法將多邊形表示的三維場景渲染到二維表面。
基本實現方法
最基礎的柵格化演算法將多邊形表示的三維場景渲染到二維表面。多邊形由三角形的集合表示,三角形由三維空間中的三個頂點表示。在最簡單的實現形式中,柵格化工具將頂點數據映射到觀察者顯示器上對應的二維坐標點,然後對變換出的二維三角形進行合適的填充。
變換
通常使用矩陣運算進行變換,另外也可以用四元數運算但那不是本文討論的范圍。在三維頂點中添加一個齊次變數成為四維定點然後左乘一個 4 x 4 的變換矩陣,通過這種方法就可以對三維頂點進行變換。主要的變換有平移、縮放、旋轉以及投射 。
以上內容參考網路-柵格化
I. 什麼是網格演算法
網格化是解釋流程中構造成圖的比較重要的一步,演算法種類也比較多。在SMT中就列出了許多種演算法供選擇,當然每種演算法有自己的特點和適應性,所以在真正網格化操作時為了提高預測的精度需要選擇合適的演算法。如下為SMT中提供的幾種演算法簡單對比。
Collocated Cokriging
協克里金演算法
層位、斷層、網格、XYZ數據、層段屬性、鑽井分層(較好用於井數據與地震屬性匹配)
Cubic Spline
樣條插值
三維的層位、網格、斷層、XYZ數據
Flex Gridding
彈性網格化
層位、斷層、網格、XYZ數據、層段屬性、鑽井分層
Gradient Projection
梯度投影
二維、三維的層位、網格、斷層、等值線、XYZ數據(較好用於構造數據)
Inverse Distance to a Power
反距離加權
二維、三維的層位、網格、斷層、等值線、XYZ數據、層段屬性、鑽井分層(較好用於速度成圖)
Natural Neighbor
自然鄰點插值
XYZ數據、層段屬性、鑽井分層(較好用於非地震類數據)
Ordinary Kriging
普通克里金插值
XYZ數據、層段屬性、鑽井分層(較好用於滲透率成圖)
Simple Kriging
簡單克里金插值
XYZ數據、層段屬性、鑽井分層(較好用於滲透率成圖)
Universal Kriging
廣義克里金
XYZ數據、層段屬性、鑽井分層(較好用於滲透率圖件和有整體變化趨勢的數據)
這里對兩種演算法做個介紹:
1、SMT8.2版本中新出現的Flex Gridding 彈性網格化演算法
該演算法利用差分方程系統原理,產生的網格節點處數值需要滿足以下兩種原則:
. 內插面與實際數據產生的趨勢面一致或者很接近;
. 該面的RMS曲率值盡可能小。
如果在一個節點處應用每一種方程都計算差分的話,而且將鄰近點都考慮在內的話,其結果會形成一個組合,但越遠的點影響越弱、越不直接。因此,在計算時都假設鄰近節點為常數,每個方程就會得到一個網格數值。如此重復應用於其它節點處。這樣可以解決單個節點的問題,我們將方程稱為「調和器」。該方法產生的曲率面會趨於最小,而且逼近實際數據。
由於每個節點在進行調和濾波計算時都需要一個局部的調和器,網格節點多時就會有許多次迭代計算過程。迭代次數差不多為N的e次方(N為數據列/行數)。因此初始網格一般時非常小的。
2、Collocated Cokriging 協克里金插值
協克里金插值與克里金演算法原理基本一樣,都是通過差異比較來計算網格數值,同時產生方差圖,但是該方法假設事件都是多屬性的,可以利用第二種協數據(如層位)輔助第一種主數據進行稀疏數據點(如井控制點)的內插。
協克里金插值利用第二種協數據指導主數據的網格化,可以提高克里金插值的准確性。該演算法中斷層可以參與運算。在使用時用稀疏數據(如井數據)作為主數據,另外一種密集分布數據作為協數據。
在具體計算中網格點處主數據有值的地方都用主數據的值,如果網格點處沒有值時則用協數據作為輔助進行計算。並且會同時產生一個方差模型。
最終的協方差網格結果為主數據進行克里金插值,同時受協數據影響。
因此,如果主數據為密集分布的數據,計算產生的網格也會接近主數據。例如,數據中包括測井解釋的孔隙度數據(稀疏分布),從地震屬性中預測的偽孔隙度數據(密集分布)。數據單位是一致的,但來源可能不一樣。
對於這種情況下協克里金插值就是一種很好的網格演算法,還可以建立起振幅與孔隙度之間的關系。
在應用時有以下注意事項:
1)在主數據為稀疏分布,協數據偽密集分布時應用效果最好。
2)如果主數據與協數據之間有一定聯系的話效果最好。
3)數據類型最好一致。
J. 柵格數據的編碼方法
編碼方法
在柵格文件中,每個柵格只能賦予一個唯一的屬性值,所以屬性個數的總數是柵格文件的行數乘以列數的積,而為了保證精度,柵格單元分得一般都很小,這樣需要存儲的數據量就相當大了。通常一個柵格文件的柵格單元數以萬計。但許多柵格單元與相鄰的柵格單元都具有相同的值,因此使用了各式各樣的數據編碼技術與壓縮編碼技術。主要的編碼技術簡介如下:
(一)直接柵格編碼
直接柵格編碼是將柵格數據看作一個數據短陣,逐行或逐列逐個記錄代碼。可每行從左到右逐個記錄,也可奇數行從左到右,偶數行從右到左記錄,為特定目的也可採用其它特殊順序。通常稱這種編碼的圖像文件為柵格文件,這種網格文件直觀性強,但無法採用任何種壓縮編碼方法。圖2.1 (c)的柵格編碼為:4,4,4,4,7,7,7,7;4,4,4,4,4,7,7,7;4,4,4,4,9,9,7,7;0,0,4,9,9,9,7,7;0,0,0,9,9,9,7,7;0,0,0,9,9,9,9,9;0,0,0,0,9,9,9,9;0,0,0,0,0,9,9,9。可用程序設計語言按順序文件或隨機文件記錄這些數據。
(二)鏈式編碼
鏈式編碼又稱弗里曼鏈碼或世界鏈碼。它由某一原始點和一系列在基本方向上數字確定的單位矢量鏈。基本方向有東、東南、南、西南、西、西北、北、東北等8個,每個後繼點位於其前繼點可能的8個基本方位之一。8個基本方向的代碼可分別用0,1,2,3,4,5,6,7表示,既可按順時針也可按逆時針表示。柵格結構按逆時針編碼上圖(2)可記錄為:1,3,7,7,7,6,6,5,4。其中前兩個數字1與3表示線狀物起點的坐標,即在第一行第三列,從第三個數字起表示單位矢量的前進方向。
鏈式編碼有效地壓縮了柵格數據,尤其對多邊形的表示最為顯著,鏈式編碼還有一定的運算能力,對計算長度、面積或轉折方向的凸凹度更為方便。比較適於存儲圖形數據。但對邊界做合並和插入等修改編輯工作很難實施,而且對局部修改要改變整體結構,效率較低。
(三)遊程編碼
遊程編碼是柵格數據壓縮的重要且比較簡單的編碼方法。它的基本思路是:對於一幅柵格圖像,常有行或列方向相鄰的若干點具有相同的屬性代碼,因而可採用某種方法壓縮重復的記錄內容。方法之一是在柵格數據陣列的各行或列象元的特徵數據的代碼發生變化時,逐個記錄該代碼及相同代碼重復的個數,從而可在二維平面內實現數據的大量壓縮。另一種編碼方案是在逐行逐列記錄屬性代碼時,僅記錄下發生變化的位置和相應的代碼。圖2.1 (c)柵格結構按遊程編碼方法可記錄為:
第一行4,47,4
第二行4,57,3
第三行4,49,27,2
第四行0,24,19,37,2
第五行0,39,37,2
第六行0,39,5
第七行0,49,4
第八行0,59,3
在這個例子中,原本64個柵格數據,只用了40數值就完整地表示了出來,可見用遊程編碼方法壓縮數據是十分有效的。
遊程編碼的編碼和解碼的演算法都比較簡單,佔用的計算機資源少,遊程編碼還易於檢索、疊加、合並等操作,在柵格單元分得更細時,數據的相關性越強,壓縮效率更高,數據量並沒有明顯增加。因此,該編碼適合微型計算機等中央處理器處理速度慢,存儲容量小的設備進行圖像處理。
(四)塊式編碼
塊式編碼是遊程編碼擴展到二維空間的情況,遊程編碼是在一維狀態記錄柵格單元的位置和屬性,如果採用正方形區域作為記錄單元,每個記錄單元包括相鄰的若干柵格,數據結構由記錄單元中左上角的柵格單元的行、列號(初始位置)和記錄單元的邊長(半徑)與記錄單元的屬性代碼三部分組成,這便是塊式編碼。因此可以說,遊程編碼是塊式編碼的特殊情況,塊式編碼是遊程編碼的一般形式。圖2.1 (c)表示的柵格結構按塊式編碼方法可記錄為:
(1,1,3,4),(1,4,1,4),(1,5,1,7),(1,6,2,7),(1,8,1,7);
(2,4,1,4),(2,5,1,4),(2,8,1,7);
(3,4,1,4),(3,5,2,9),(3,7,2,7);
(4,1,2,0),(4,3,1,4),(4,4,1,9);
(5,3,1,0),(5,4,2,9),(5,6,1,9),(5,7,1,7),(5,8,1,7);
(6,1,3,0),(6,6,3,9);
(7,4,1,0),(7,5,1,9),
(8,4,1,0),(8,5,1,0)。
從以上論述的塊式編碼的編碼原理可知,一個記錄單元所表示的地理數據相關性越強,也即記錄單元包含的正方形邊長越長,壓縮效率越高。而地理數據相關性差時,也即多邊形邊界碎雜時,塊式編碼的效果較差。
塊式編碼的運算能力弱,必要時其編碼的柵格數據須通過解碼轉換成柵格矩陣編碼的數據形式才能順利進行。塊式編碼在圖像合並、插入、面積計算等功能方面較強。
(五)四叉樹數據結構
四叉樹編碼又名四元樹編碼,可以通俗理解為一個具有四分枝結構的樹,它具有柵格數據二維空間分布的特徵,這是一種更為有效的編碼方法。四叉樹編碼將整個圖形區域按照四個象限遞歸分割成2n×2n象元陣列,形成過程是:將一個2×2圖像分解成大小相等的四部分,每一部分又分解成大小相等的四部分,就這樣一直分解下去,一直分解到正方形的大小正好與象元的大小相等為止,即逐步分解為包含單一類型的方形區域(均值塊),最小的方形區域為一個柵格單元。這個倒向樹狀的圖中「○」表示可繼續分割的方形區域;「□」表示具有同類屬性的方形區域;「■」表示不能再分的單個(最小)象元柵格,即所謂的樹葉,樹葉表示的是具有單一類型的地物或是符合既定要求的少數幾種地物,可以在任意層上。
通過以上對四叉樹結構的分析,可發現它有以下特點:
⑴ 存儲空間小:因為記錄的基本單位是塊,不是象素點,因此大大地節省了存儲空間。
⑵ 運算速度快:因為四叉樹結構的圖形操作是在數上進行的,比直接在圖上運算要快得多。
⑶ 柵格陣列各部分的解析度可變:不需要表示許多細節的地方,分級較少,因而解析度低;邊界復雜的地方分級較多,解析度高,因而在減少數據量的基礎上滿足了數據精度。
⑷ 容易有效地計算多邊形的數量特徵。
⑸ 與柵格結構之間的轉換,比其它壓縮方法容易。
⑹ 四叉樹編碼表示多邊形中嵌套其它屬性的多邊形時比較方便:它允許多邊形嵌套多邊形的結構,是非常實用的、重要的特點,這點深深得到地理信息系統數據編碼設計者的青睞。
⑺ 四叉樹編碼的不足之處是:轉換具有不確定性,對大小相等形狀相同的多邊形,不同人可能分解為不同的四叉樹結構,因而不利於形狀分析和模式識別。四叉樹編碼處理結構單調的圖形區域比較適合,壓縮效果好,但對具有復雜結構的圖形區域,壓縮效率會受到很大影響。
(六)八叉樹與十六叉樹結構
前面的數據結構都是基於二維的,在相當多的情況下,如地下資源埋藏、地下溶洞的空間分布,二維的坐標體系根本無法表達。因此需要有三維數據結構,如果考慮空間目標隨時間變化,那還需要4維數據結構。較好的表達三維與四維結構是在四叉樹基礎上發展起來的八叉樹(三維)和十六叉樹(四維)。
是將空間區域不斷地劃分為八個同樣大小的子區域,
(七)各種編碼的比較分析
比較以上各種編碼,可得出如下主要結論:
⑴ 直接柵格編碼直觀簡單,但數據出現大量冗餘;
⑵ 鏈式編碼對邊界的運算方便,壓縮效果好,但區域運算較困難;
⑶ 遊程編碼即較大幅度地保留了原始柵格結構,又有較高的壓縮效率,而且編碼解碼也較容易,但僅局限在一維空間上處理數據;
⑷ 塊式編碼在圖像合並、插入、面積計算等功能方面較強,當所表示的地理數據相關性強時,壓縮效率相當高;但地理數據相關性差時,塊式編碼的效果較差,而且塊式編碼的運算能力較弱;
⑸ 四叉樹編碼運算速度快,存儲空間小,解析度可變,壓縮效率高,但其轉換具有不確定性,難以形成統一演算法。