2015-07-05 72 views
4

會有什麼糾正以下變形的圖像的程序?它看起來像是從中心凸出的圖像。這些QR碼是相同的,因此可以使用這些圖像的組合來獲得單個正確和直接的圖像。 請指教。OpenCV的:糾正這些扭曲的圖像

enter image description here enter image description here enter image description here

+0

相關:http://mathematica.stackexchange.com/questions/26268/qr-code-in-shopping-cart-handle – RobAu

回答

1

遇到被稱爲 「桶形畸變」 的失真。一個技術名稱爲「徑向畸變和切向失真組合」

你的問題的解決方案是OpenCV的攝像機標定模塊。只要谷歌它,你會發現在openCV維基文件。此外,openCV已經內置了源代碼示例來說明如何校準相機。

基本上,你需要打印一個國際象棋棋盤的圖像,利用它的一些照片,運行校準模塊(建法)並獲得儘可能輸出變換矩陣。對於應用此矩陣的每個視頻幀(我認爲這種方法稱爲cvUndistort()),並且它會拉直圖像中的曲線。 注意:如果您更改相機的變焦或焦距,它將不起作用。

如果攝像機細節不可用,無法控制 - 那麼你的問題是非常嚴重的。有一種方法可以解決失真問題,但我不知道openCV是否內置了模塊。恐怕你需要編寫很多代碼。

基本上 - 你需要檢測儘可能長的線。然後從這些線條(垂直和水平)你建立一個交點網格。最後,您將這些點的網格放入openCV校準模塊。 如果你有足夠的交點(比如說20或更多),你將能夠計算出失真矩陣並且使圖像失真。

您將無法在相機完全校準。換句話說,您將無法運行一次計算預期失真的過程。相反 - 在每個視頻幀中,您都將直接計算失真矩陣 - 將其逆轉並且不失真地對圖像進行扭曲。 如果你不熟悉圖像處理技術或無法找到直接解決您的問題了可靠的開源代碼 - 那麼恐怕你將無法消除失真。對不起

+0

相機詳細信息不可用 –

+0

我編輯了我的答案以包含您的評論 – DanielHsH