2013-09-25 45 views
1

可以說如果我在畫布上繪製圖像,該圖像是彎曲的,不居中的頁面,並且稍微有一些透視圖(左上方是遠端和底端例如右邊是)。是否有一個畫布的js庫,可以轉換到畫布上的頁面直起來

所以我想辦法

  1. 檢測,其中線。
  2. 確定它們的曲率並記住最適合它們的曲線。
  3. 自由網格變換直到大部分或全部曲線變成直線。
  4. (可選)將頁面解開後,將其翻轉回中心。
  5. 修剪所有非頁面邊緣。

我看過一個android應用程序。我也知道發生了什麼,但這裏需要的兩件事是我不知道該怎麼做。數學和分析圖片。嘗試了很多之後,我應該能夠找出分析圖片,但數學部分將超越我。

看一個例子...假設一個頁面被掃描,並且檢測到下面的曲線,並且圖像被轉換成所有的線條都變直的時候。

enter image description here

雖然最後一步是有點粗糙引起的Photoshop可是沒有工具我一直在尋找still..gives一個好主意。

enter image description here

所以它會是真棒有一個庫,或者如果它很容易,你可能只是在這裏展示。

不想用photoshop做任何事情......這並不明顯,我的感覺。 :D

+0

任何有用的建議感謝以及在此先感謝。 – Techsin

+0

這是一個有趣的話題,但恕我直言,這個問題對於SO格式來說過於寬泛。您需要實施大量用於檢測和分析的算法,並且會有太多可能的答案。 – K3N

+0

我會採取任何一種方式來做到這一點。我無法做的事情是在畫布上繪製曲線和轉換。 – Techsin

回答

2

如果鏡頭彎曲校正是主要問題,那麼您可以實現一個球形算法,用於扭轉該彎曲。

通常情況下,曲面發生在鏡頭中心,但無論如何,您需要校準鏡頭以獲得最佳效果(例如手機/相機鏡頭,不同焦距,可能的中心偏移,曲率等)。

這裏是一個這樣的算法實現:
Simple Algorithm Correcting Lens Distortion

而且它的演示中,我在JavaScript中做此:

ONLINE DEMO
DEMO CODE

調用該函數就像這樣:

lensCorrect(srcCanvas, dstCanvas, strength, zoom, radius, quality, callback); 

(請參閱源代碼的詳細信息 - 在BSD下發布)。從演示鏈接

Demo snapshot
快照

您也可以使用Photoshop內置的鏡頭校正技術,提供質量非常好。但是,只要使用焦距,您的影像就需要自動使用相機和鏡頭模型包含EXIF信息,並且該鏡頭必須在Photoshop的數據庫中註冊。

您還可以通過使用JavaScript and Photoshop API與Photoshop編程接口。

+0

這確實解決了一部分...我現在需要時間。 – Techsin

相關問題