0
C++/CXのWindows UWP OCR-Engineを使用して画像内の数字/数字を検出する際に問題があります。次のコードでOcrEngine:組み込みOcrEngineクラスを使用して数値/数字を検出する方法
...
cv::Mat croppedImage = imread("digit.png");
WriteableBitmap^ bit1 = ref new WriteableBitmap(croppedImage.cols, croppedImage.rows);
SoftwareBitmap^ bit2 = bit2->CreateCopyFromBuffer(bit1->PixelBuffer, BitmapPixelFormat::Bgra8, bit1->PixelWidth, bit1->PixelHeight);
Windows::Globalization::Language^ l = ref new Windows::Globalization::Language("de");
OcrEngine^ ocrEngine = OcrEngine::TryCreateFromLanguage(l);
IAsyncOperation<OcrResult^>^ ao = ocrEngine->RecognizeAsync(bit2);
task_completion_event<Platform::String^> purchaseCompleted;
auto deviceEnumTask = create_task(ao);
deviceEnumTask.then([this](OcrResult^ result)
{
App1::MainPage::findNumber(result->Text);
});
...
void App1::MainPage::findNumber(Platform::String^ text)
{
//Do something with String
}
私の問題は今、私は、私は、Windows 10 UWPのための組み込みメソッドを使用して、それを試してみました、次の画像
に数を検出する必要が findNumber
に挿入された文字列は常にnullであることを示します。私は入力として異なる画像を試しましたが、常に同じ結果を返しました:NULL。
- C++/CXでこの画像の数字を取得する簡単な方法はありますか?
- 何が問題なのですか?画像を変換しますか?
公式[GitHubの中OCRサンプル](https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/OCR)がありますが、あなたはチェックを持つことができます。しかし、あなたのイメージを認識するためにそれを使うと、それを認識することもできません。 OcrEngineは、画像を正しく認識できるかどうかを保証しません。テキスト認識の精度は、画像の品質に依存します。詳細については、[Windows.Media.Ocr名前空間](https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.ocr.aspx)を参照してください。あなたの答えは –
Thxです。 その間、私は間違いを見つけました。問題は、SoftwareBitmapをWriteableBitmapに変換することでした。後で解決策を投稿します。 また、私の画像のOCRで1桁の数字を特定できませんでした。テキストを「2」から「Raum 2」に変更し、すべて正常に動作します。 –