2017-05-05 127 views
2

我繪製了一個帶有一些校準點的矢量幾何圖形。在打印點上調整幾何圖形

Original draw

我打印該幾何結構,然後我物理掃描打印的校準點(I不能掃描幾何形狀,我只能掃描校準點)。 當我獲得這些點時,由於某些打印錯誤或打印校準不良,這些點不再處於其位置。

Scanned image

的問題是: 是否有任何的算法,幫助我適應在新的點的基礎原始幾何掃描? 在實踐中,我需要扭曲幾何圖形以獲得打印在紙張上的真實幾何圖形,這些圖形與校準點上的打印誤差相同。

失真是由材料(未紙但布)的在打印過程中的物理扭曲給出。我不知道在印刷過程中材料會扭曲多少。

+0

有無數*可能*的方式來做你明顯要求的。您是否更瞭解打印和掃描過程中可能出現的失真? –

+0

對Rory的評論進行詳細闡述:失真似乎不是標準模型之一(例如徑向失真,透視變換等)。關於每個點失真的獨立性,你可以說什麼?看起來好像有一個潛在的粗糙失真模式(甚至可以用線性變換表示)。每個點上是否存在一些額外的(獨立的)噪音?否則,頂行中的中間點看起來真的不合適。您的採集設置中有什麼可能的失真來源? –

+1

謝謝大家。在印刷過程中,材料(不是紙,而是布)的物理變形給出了變形。我不知道在印刷過程中這些材料會有多少變形。有一個原始矩陣的點和最終的矩陣點(我可以在圖中插入超過8個點),我不能以任何方式計算路徑的新點? – stefano

回答

0

是的,有算法來幫助你。一般來說,您需要了解/找到您擁有的兩幅圖像之間的轉換。

典型的幾何變換是需要至少三個控制點或分段局部線性/局部加權均值的仿射變換(位移,比例,旋轉,剪切,反射),它們至少需要4-6個控制點。你擁有的控制點越多,總的來說就越好。

鑑於在一個圖像的一組控制點和控制點的另一圖像中的對應的一組有用於發現如果指定了類(仿射或分段局部線性)之間的最佳變換算法。在Matlab中參見例如fitgeotrans。我不知道如何通過某種優化來解決問題。應該很容易找到其他編程語言(Python,C,Java)的可用實現。

剩下的是找到兩個圖像中控制點之間的對應關係。對於少數圖片,您可以手動完成,但在一般情況下,您可能還需要將其自動化。像imregister一般的圖像配准算法應該對你的圖像有好處。他們給你一個很好的初始估計(可能已經足夠了),以便隨後識別相應的點對是微不足道的(總是走近)並允許精煉。

所以我建議你先只是嘗試與身份轉變爲初值準圖像(灰度數據)。然後識別相應的點對,並使用仿射或碎片/局部變換來細化變換。然後在幾何圖形上應用變換以獲取打印的幾何圖形。根據你選擇的編程語言,你會發現很多實現這個工作的實現。