TODO
OpenCV Android 프로젝트에 설치
Gaussian Blurring 과 같은 기술을 이용하여 Image의 noise 제거
OpenCV를 이용한 Document Edge Detection
https://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/
Edge Detection 결과를 이용한 Document Contour(Outline) 찾기
OpenCV의 Perspective Transform을 이용해서 정면화하기
https://www.pyimagesearch.com/2014/08/25/4-point-opencv-getperspective-transform-example/
정면화 + De-noise 한 image를 이용하여 Text Recognition 모델 결과 뽑기
Text Recognition 동작 과정
Text Recognition 결과가 들어있는 변수들
Text class 정보
text.text: 확인필요
text.textBlocks에 실제 detection된 여러개의 textblock들이 존재하고 이를 for문으로 받아서 정보를 추출
for (textBlock in text.textBlocks) { // Renders the text at the bottom of the box.
Log.d(TAG, "TextBlock text is: " + textBlock.text)
Log.d(TAG, "TextBlock boundingbox is: " + textBlock.boundingBox)
Log.d(TAG, "TextBlock cornerpoint is: " + Arrays.toString(textBlock.cornerPoints))
for (line in textBlock.lines) {
Log.d(TAG, "Line text is: " + line.text)
Log.d(TAG, "Line boundingbox is: " + line.boundingBox)
Log.d(TAG, "Line cornerpoint is: " + Arrays.toString(line.cornerPoints))
for (element in line.elements) {
Log.d(TAG, "Element text is: " + element.text)
Log.d(TAG, "Element boundingbox is: " + element.boundingBox)
Log.d(TAG, "Element cornerpoint is: " + Arrays.toString(element.cornerPoints))
Log.d(TAG, "Element language is: " + element.recognizedLanguage)
StillImageActivity.kt에서 imageProcessor.!!processBitmap()으로 Text Recognition을 수행하기 전에 bitmap을 가지고 OpenCV의 기능을 이용해서 bitmap(image)에서 문서를 찾고 정면화한 bitmap을 만들어내야합니다
이 bitmap을 이용하여 pdf 파일을 만들면 스캐너 완성!
이 bitmap을 processBitmap의 parameter로 넘겨주면 text recognition까지 가능!
Text Recognition 결과를 예쁘게 visualization합니다
시작은 그냥 일반 web에서 textblock처럼 visualization
Best는 docx 파일처럼 layout까지 따라서 visualization(?)