MV4 Web APIなどのサーバー側ASP.Net Webアプリケーション上のMicrosoft.Windows.Ocr
(/ WindowsPreview.Media.Ocr.dll
)アセンブリを参照し、そのアセンブリのOCR機能を利用して入力として写真画像を取得し、抽出する方法を知っている人はいますか?それからテキストコンテンツ? はいの場合、回答に詳細な手順を記入してください。
(ファイルアップロードUI画面を介して)サーバーにアップロードされた画像を取得し、[〜#〜] ocr [〜#〜]を使用してテキストを読み取り、テキストを表示するWebアプリケーションを構築しています。アップロードされた画像のすぐ隣の次のページ。
ほとんどの市販のOCRライブラリにはアームと長さがかかるため( 前回チェックしたときに1,300ドル以上 )Microsoft OCRライブラリMicrosoft.Windows.Ocr
つまり[〜 #〜] free [〜#〜]そして 非常に単純な のようで、簡単に使用できます。
そこで、ASP.Net MVC4 Web APIプロジェクトにMicrosoft.Windows.OcrNugetパッケージをインストールしようとしましたが、成功しました。
その後、MVC4 Web APIプロジェクトリファレンスを調べましたが、驚いたことに、Microsoft.Windows.Ocr.dllAssemblyへの参照が見つかりませんでした。
そこで、\packages
フォルダー内のアセンブリを参照してx86バージョンのMicrosoft.Windows.Ocr.dllアセンブリへの参照を追加し、\lib\win81\x86
からWindowsPreview.Media.Ocr.dllを選択しようとしました。フォルダ
注:アセンブリ名はWindowsPreview.Media.Ocr.dllであり、Microsoft.Windows.Ocr.dllではありません。理由はわかりません!
それを実行して[〜#〜] ok [〜#〜]をクリックすると、次のエラーメッセージが表示されました。
---------------------------
Microsoft Visual Studio
---------------------------
A reference to
'D:\TestProjects\packages\Microsoft.Windows.Ocr.1.0.0\lib\win81\x86\
WindowsPreview.Media.Ocr.dll' could not be added. Please make sure
that the file is accessible, and that it is a valid Assembly
or COM component.
---------------------------
OK
---------------------------
次に、 Nugetページ から、「サポートされているプラットフォーム」はWindows Phone 8、Windows Phone 8.1、Windows 8.1(Windowsストアアプリのみ)であることがわかりました。
しかし、確かに、ASP.Netアプリケーションのサーバー側でこのOCR dllを使用する方法が必要ですか?
Microsoft.Windows.Ocr
(/ WindowsPreview.Media.Ocr.dll
)アセンブリを参照し、そのアセンブリのOCR機能を利用して入力として写真画像を取得し、テキストコンテンツを抽出する方法を知っている人はいますか? ** はいの場合、回答に詳細な手順を記載してください。「ハッキング」やサンプルコードは大歓迎です!!
ありがとうございました!!
Visual Studio 2015とWindows 10を使用している場合、
Microsoft.Windows.Ocr
ユニバーサルWindowsプラットフォームに移動しました。として利用可能です
Windows.Media.Ocr
そのため、Windows 10用のツールを有効にしてVS 2015をアップグレードする必要があります。
私は次のことを行い、Windows.Media.OcrはWeb APIの参照として追加されました。
注:以下はVS 2015とWindows 10でのみ機能します。VS2015も niversal Windows Platform (UWP)に更新する必要があります。サンプルOCRについて this を確認してください。
お役に立てれば。 Update参照にインポートされましたが、ロードに失敗しています。それが人々に何らかの出発点を提供することを願っています。ありがとう!。
有効なソリューションについては、以下のアップデート2にスキップできます。
タイプロード例外をスローします。私は同じことをしようとしているが、プロジェクトを実行できないため、投稿していると言われています。ここでは、winrt APIを非Windowsアプリプロジェクトに取り込む方法に関する基本的な手順を示します。
http://weblogs.thinktecture.com/cnagel/2012/10/calling-winrt-from-windows-desktop-apps.html
また、dllを参照しようとせず、代わりにwinmdファイルを参照してください。
Ocrライブラリを参照するサンプルコンソールアプリを次に示しますが、ソリューションを実行すると、タイプロード例外がスローされます。( https://github.com/Xandroid4Net/MicrsoftOcrConsoleApp )Itコンソールアプリからasp.netアプリケーションに簡単に移植する必要があります。型のロード例外を修正する方法がわかりませんが、おそらく私よりも遠くまで行くことができます。解決策を見つけたら投稿してください。
さらに掘り下げると、次のアセンブリバインドエラーが明らかになりました。プロセスにパッケージIDを設定する方法はありますか?
ファイル:WindowsPreview.Media.Ocr!WindowsPreview.Media.Ocr.OcrEngine、Version = 255.255.255.255、Culture = neutral、PublicKeyToken = null、ContentType = WindowsRuntime.htm
ファイルの内容:
* Assembly Binder Log Entry(2014/12/1/@ 11:48:01 PM)*
操作は失敗しました。バインド結果:hr = 0x80073d54。プロセスにはパッケージIDがありません。
ロードされたアセンブリマネージャー:C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll実行可能C:\ Users\Wesley\Documents\Dev\ConsoleApplication2\Program.exeの下で実行---詳細なエラーログが続きます。
BEGIN:Windowsランタイムタイプバインド。 END:プロセスにはパッケージIDがありません。 (HRESULTからの例外:0x80073D54)
これは厄介な回避策ですが、Windows 8.1 Surface Pro 3タブレットでは機能しました。 WebOcrはWebフォームですが、MVC用に簡単にリファクタリングできます
1) https://github.com/Xandroid4Net/CommandLineOcr をダウンロードします。これは、擬似ストアアプリです。
2)アプリをビルドして実行します。何もしないように見えます。大丈夫です。必要な新しいキーでレジストリを更新します。
3) https://github.com/Xandroid4Net/WebOcr をダウンロードします。
4)WebocrプロジェクトでOcrCommandLineCaller.csを見つけます。
5)HKEY_CURRENT_USER\Software\Classes\ActivatableClasses\Package\Some_Sort_Of_Guid_For_Your_APP\Server\App.App ....\AppUserModelIdでレジストリキーを見つけます
レジストリキーの検索についてさらにサポートが必要な場合は、このSOの質問を参照してください。 C#のIApplicationActivationManager :: ActivateApplication?
6)レジストリキーで見つかった奇妙なGUIDアプリ識別子でOcrCommandLineCaller.csのappActiveManager.ActivateApplication呼び出しを更新します。
7)default.aspx.csで、saveAsPathをマシン上のパスに置き換えます。 Windowsストアアプリには、Windows.Storage.ApplicationData.Current.LocalFolderで表される静的パスがあります。これは、簡単にするために画像を保存したパスです。
8)コードを自由に変更して、質問がある場合はお知らせください。
これは非常にラフで厄介なソリューションですが、動作します。
私は数年前からMS Officeに同梱されているMODIソリューションを使用していましたが、とても満足していました(Officeを購入した場合は無料でした)。中止されたとき、私はむしろ失望しました。 Tesseractを試してみました...私は本当にそれが好きでしたが、良質でオランダの機械タイプには時間がかかり、不正確であることがわかりました...そしてあなたのように、本質的に趣味のプロジェクトに200ドルを費やすことは正当化できませんでした。
必死の検索の後、ここの誰かがTOCR(Transym製品)を指摘してくれました。すぐにエピファニーが続きました。 ;-)私は現時点でTransymと提携していないと言う必要があると思います、そして、はい、私は全額を支払いました...60ポンド!(タイプミスなし... 60 quid)、VATを含めて113ユーロになりました。
本質的にはインテグレーター向けです(スキャン/ビューア/ OCRアプリが含まれていますが、これは単にデモを意味するだけです-ライセンスを購入すると、そのソースコードが取得されます)。 APIは時代遅れです(OCRエンジンのように、かなり成熟したコードベースです)が、高速で安定しており、予想外に正確です。 DokuStarエンジンや他の難解なエンジンほど正確ではありませんが、私のアプリケーション(オランダ語と英語のマシンタイプ)では、1000ドルをはるかに超えるさまざまなエンジンに対して独自の機能を備えています。オランダのマシンタイプでの認識精度は優れています(手書きは行いません)。私の意見では、お金の価値の面で、それはとんでもなく良いです。 APIについて:私は、ニーズに合わせて初歩的な.NETラッパーを作成しました。これは数晩で行われました。
Webサイトで利用可能な評価版があります( http://www.transym.com/index.htm )。そして、もしあなたがそうするならば、私はお金を得ません;-)
私見、おそらくあなたがターゲットにしているプラットフォームでサポートされていないライブラリを使用しようとするあなたの努力の価値はありません。
this answer をチェックして、いくつかの無料の選択肢を見つけることができます。
Uwpdesktop NuGetを使用して、デスクトップアプリでUWP OCR APIを動作させることができました。
インストールパッケージuwpdesktop
その後、UWP APIを呼び出すことができます。