2017-05-09 7 views
1

こんにちはImは現在Tesseract-ocrで新しく、私は写真を撮るときに私のイメージを認識したいと思います。Imはイオンフレームワークを使ってイメージをキャプチャしていますうまく動作しますが、私はそれが何もしないOCRの機能のボタンをクリックしたとき..私はちょうどこれは私のhtmlocr-私のイメージはtesseract ocrで認識されません

<ion-view view-title="OCR Testing"> 
    <ion-content padding="true"> 
     <button class="button button-block button-positive" ng-click="startOCR()"> 
      <i class="icon ion-ios-camera"></i> Scanbot OCR 
     </button> 
     <button class="button button-block button-positive" ng-click="scan()"> 
      <i class="icon ion-ios-camera"></i> Scan 
     </button> 
     <!-- <button class="button button-block button-positive" ng-if="currentDocumentImage.originalImageFileUri" ng-click="startCroppingUi()"> 
     <i class="icon ion-ios-crop-strong"></i> Scanbot Cropping UI 
    </button> 
--> 
     <!-- <img ng-if="currentDocumentImage.imageFileUri" src="{{currentDocumentImage.imageFileUri}}" class="img-big-thumbnail padding"> --> 
     <img ng-if="image" src="{{image}}" class="img-big-thumbnail padding"> 
     <code>{{text}}</code> 

    </ion-content> 
    </ion-views> 

であり、これは私のコントローラ

.controller('ScanbotOCRCtrl', function($scope, $cordovaCamera, DemoImageStorage, PhotoLibrary) { 

    $scope.startOCR = function() { 

     $scope.imageData = ''; 

     var options = { 
      quality: 90, 
      destinationType: Camera.DestinationType.DATA_URL, 
      sourceType: Camera.PictureSourceType.CAMERA, 
      allowEdit: true, 
      encodingType: Camera.EncodingType.JPEG, 
      targetWidth: 500, 
      targetHeight: 500, 
      popoverOptions: CameraPopoverOptions, 
      saveToPhotoAlbum: false 
       // correctOrientation: true 
     }; 

     $cordovaCamera.getPicture(options).then(function(imageData) { 
      $scope.image = "data:image/jpeg;base64," + imageData; 
      $scope.text = null; 

      $timeout(function() { 
       // DOM has finished rendering 
       // insert here the call to TesseractPlugin.recognizeText function to recognize the text 
       $scope.imageData = $scope.image; 

      }); 


     }, function(err) { 
      // error 
      console.log('ERROR with camera plugin. Error: ' + err); 
     }); 

    }; 


    $scope.scan = function() { 

     window.TesseractPlugin.recognizeText($scope.imageData, language, function(recognizedText) { 
      $scope.text = recognizedText; 
      alert(recognizedText); 
     }, function(reason) { 
      console.log('Error on recognizing text from image. ' + reason); 
     }); 


    } 
ある https://github.com/gustavomazzoni/cordova-plugin-tesseract

でドキュメントを追いました

+0

あなたは何か間違いをしましたか? –

+0

いいえ、私はボタンをクリックしたときにエラーが表示されません。私は 'console.log'を 'alert'に変更します – VLR

答えて

0

私はもう少し遅いですが、ここでは解決策です。

"data:image/jpeg; base64"を追加することなく、getPicture()関数によって返された元のデータ、つまりimagedataを直接送ります。だからそれはなります:

$cordovaCamera.getPicture(options).then(function(imageData) { 
     $scope.image = "data:image/jpeg;base64," + imageData; 
     $scope.text = null; 
     //here, do it like this and feed it to tesseract 
     $scope.imageData = imageData; 
     }); 
関連する問題