[DataWith]気の向くままソフトについて書いてます。エンジニアではないのであくまでも初心者目線で。EngineをVisualBasicで使う(7:画像ファイルの処理)今回は画像ファイルを処理してみようと思います。次の2つが思いつきました。Language側で画像ファイルを読み込むKernelLinkのクラスを見ると「evaluate***」関数には文字列を渡すものが多く、画像のバイナリを渡すのは面倒そうなので、まずは、bの方法から試してみることにしました。GUIを次のようにしました。GUIデザインを調整それぞれ、TextBox1、Button1、PictureBox1です。Language側でするので、コードはいたって簡単。Language側でするので、コードはいたって簡単。Class起動します。画像は「C:\data\rose.png」にあるとして、テキストボックスに次のように入力します。Languageでは、パスには「/」を使うことに注意。「\」ではエラーになります。「Evaluate」をクリックすると、次のようになります。ただしく、読み込まれています。Languageがそのまま処理されるので、画像処理も行えます。テキストボックスに次のように入力してみます。Import["C:/data/rose.png"]EdgeDetect[img]輪郭抽出の関数を適用した結果おお、簡単。Engineはこういうときには便利かも。出力が画像の時は、関数を入れ替えていけばそれなりに範囲が広がります。Languageの画像処理関数で、画像の認識をやってみようと思います。Researchに接続してデータをやり取りするので、ネットワーク環境が必要です。認識した後は、単語が出力されるのでGUIを次のようにしてみました。今回はPictureBoxは使いません。出力は文字列になるので、コードを次のように変更します。Classさてやってみます。Languageの関数は「ImageIdentity」です。ImageIdentifyを記述そうか。ドキュメントセンターにおもいきり、「デフォルトで,ImageIdentifyはEntity["Concept",...]の形式のオブジェクトを返す.」と書いてありました。ImageIdentifyの結果1ということで、Entityから文字を取り出す行を追加しました。ImageIdentify[img]entity["Name"]ImageIdentifyの結果2うまく返ってきました。別の画像でも試してみます。次の画像ファイルを認識させてみます(画像は何年か前のドイツでの私の夕食)。その他の画像を認識させてみるその結果は。実際には、チキンなのと、チップスもないですが。このあたりは辞書の関係ですね。結果としては、まあいいですね。認識の結果(料理は難しいか。)ということで、ここまで。2引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。