2017-05-29 97 views
2

截至目前,當Android Vision檢測到QR碼時,數組「Barcode.cornerPoints」(包含代碼的角點)以看似隨機的順序填充。我需要確定包含「方向正方形」的4個角點中的哪3個。QR碼的方位角

我使用目前的方法是很不滿意:

  1. 對於每個檢測到的QR碼,我不得不創建位圖,並試圖與另一個庫再次找到上的QR碼(斑馬線)它始終以相對於旋轉的一致順序返回角點。

  2. 如果Zxing發現QR碼(這可能不會發生在五次中的四次),我需要交叉檢查並匹配Android視頻角落的Zxing角。

我想要的是獲取有關方向的數組「Barcode.cornerPoints」。

例如和澄清:

cornerPoints[0] = //First corner-point with an orientation square 
cornerPoints[1] = //Second corner-point with an orientation square 
cornerPoints[2] = //Third corner-point with an orientation square 
cornerPoints[3] = //The corner-point that does not contain a orientation square 

> Like in this picture <

我一直在努力,而現在找到一個聰明的解決辦法對這個問題的一個一刀,但我不能想出什麼好的解決辦法,並沒有顯示谷歌已經開放源碼的人口使用qrCorners陣列時使用的代碼,所以我不能擴展它...

任何幫助嗎?我不是誰一直在尋找一個解決這個問題的唯一一個:

https://github.com/googlesamples/android-vision/issues/103

+1

爲什麼你需要方向正方形?我的猜測是,用於獲取條形碼內容的'Vision API'不能檢測特徵。你看過OpenCV嗎? –

+0

1)我需要知道qr碼相對於周圍環境的方向,因爲在閱讀完代碼之後,我會在qr碼的右側做一些裁剪和圖像編輯。在不知道角落的方向的情況下,不可能知道哪個區域位於QR碼的右邊。 2)也許吧,除了cornerPoints數組的任意數量外,Android Vision可以完美滿足我所有的需求。如果他們只會一致地填充數組,則可以將qr代碼用作許多應用程序中的定位錨點。 3)不,我還沒有關注OpenCV – kpptron

回答

0

我在一個類似的情況也是如此。有什麼可以幫助您知道的是,Android Vision未返回corner points in a completely random order

我相信探測器掃描圖像從左上到右下的框架。在圖像中首先檢測到的QR碼角將以角0返回,其餘按順時針方向返回。

如果Android Vision根據方向以「靜態」順序返回角落,那麼真正有用的是如何。我幾乎沒有看到選擇方式返回角點的任何理由。也許更好的表現?爲了讀取QR碼,必須根據由QR碼的角落確定的特定方向來完成。這意味着Android Vision已經確定了方向和角落,但並未向我們提供這些信息。 也許這可能會在未來的更新中添加?