2017-08-08 496 views
0


我面對這個問題一段時間,仍然無法弄清楚。
我使用OpenCV和Java從圖像中檢測到卡片,然後將其裁剪出來,如果原始圖像的方向正確,每件事情都會很好。目前的任務是:如何以180度旋轉圖像?或者如何檢測文本是顛倒的,那麼我們可以將其旋轉到正確的方向。
我從Java中的OpenCV得到的結果是Mat對象包含裁剪卡片。
有沒有人遇到過並解決過這個問題,或有任何想法,請直接給我正確的解決方案。
在此先感謝。如何使用OpenCV和Java在圖像/顛倒圖像中檢測顛倒的文本

這裏是樣本圖像,我從原件
Sample 1
Sample 2

回答

0

只要運行你的代碼裁剪,如果發現沒有在第一輪那麼你可以旋轉圖像,然後再試一次?或者你可以嘗試只掃描一小部分卡,然後你可以確定卡是否正確。

它會付出代價來坐下來思考如何做到最好。

至於旋轉圖像,你有沒有試過查找它?因爲如果你使用的是緩衝圖像,然後旋轉可以用一個簡單的AffineTransform來完成:

AffineTransform at = AffineTransform.getRotateInstance(Math.PI, image.getWidth()/2, image.getHeight()/2.0); 
BufferedImage myRotatedImage = createTransformed(image, at); 

編輯:對於旋轉Mat對象,你可以使用:http://docs.opencv.org/java/3.0.0/

Imgproc.warpAffine(Mat source, Mat dest, Mat M, Size size)

來自

+0

感謝您的回答,我有一些可能的解決方案,但計算需要時間。例如我可以嘗試OCR圖像的內容(只是2次,並獲得最佳的投票是正確的方向),我只是想找到另一個強大的方法來處理這個任務更好 –

+0

我想你誤解我的問題,重點是我知道如何在OpenCV和Java中旋轉圖像/ Mat對象,但是我想知道結果圖像是否處於正確的方向或者不在下一步(OCR步驟)。 –