Back to Top

Daily Archives: 2017年1月12日

AForge のインストール

AForge.NETは、画像処理、ニューラルネットワーク、遺伝的アルゴリズム、ファジーロジック、機械学習、ロボット工学などコンピュータビジョンと人工知能の分野で使用するオープンソースのフレームワークです。

ライセンスは、LGPL v3ですが、AForge.Video.FFMPEGコンポーネントはGPLですので注意

Visual StudioでAForgeをインストールする方法を記載します。

AForgeのインストール

Visual Studio の[ツール]-[Nuget パッケージ マネージャー]にて「AForge」で検索してインストールします。

AForgeは多彩なコンポーネントに分かれています。

Forge.Imaging – 画像処理ルーチンとフィルタを備えたライブラリ

AForge.Vision – コンピュータビジョンライブラリ

AForge.Video – ビデオ処理のためのライブラリ

AForge.Neuro – ニューラルネットワーク計算ライブラリ

AForge.Genetic – 進化プログラミングライブラリ

AForge.Fuzzy – ファジー計算ライブラリ

AForge.Robotics – ロボットキットサポートを提供するライブラリ

AForge.MachineLearning – 機械学習ライブラリ

AForge.Math – 数学ユーティリティ

AForge.Controls – UIコントロール

AForge.Video.DirectShow – DirectShowインターフェイス

など沢山のライブラリが提供されていますので、必要なライブラリを指定してインストールします。

 

 

VB.NET HttpClientでGET要求でデータダウンロード

HttpClientクラスで、GET要求にて指定URL(URI)から非同期でデータをダウンロードする方法を記載します。

・System.Netをインポートする

GetStringAsync()メソッドにて、URL(URI)から文字列としてダウンロードする

Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    DirectCast(sender, Button).Enabled = False

    Dim url As Uri = New Uri("http://microsoft.com")
    Dim html As String

    Using HttpCl As New HttpClient()
        html = Await HttpCl.GetStringAsync(url)
    End Using

    'ダウンロードしたデータを表示する
    Console.WriteLine(html)

    DirectCast(sender, Button).Enabled = True
End Sub

 

GetByteArrayAsync()メソッドにて、URLからバイナリーデータとしてダウンロードする

Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    DirectCast(sender, Button).Enabled = False

    Dim url As Uri = New Uri("http://microsoft.com")

    Using HttpCl As New HttpClient()
        Data = Await HttpCl.GetByteArrayAsync(url)
    End Using

    'ダウンロードしたデータを表示する
    Dim str As String = System.Text.Encoding.UTF8.GetString(Data)    'バイト配列を文字列に変換
    Console.WriteLine(str)

    DirectCast(sender, Button).Enabled = True
End Sub

 

GetStreamAsync()メソッドにて、URLからストリームで読み込む

Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    DirectCast(sender, Button).Enabled = False

    Dim url As Uri = New Uri("http://microsoft.com")
    Dim str As String

    Using HttpCl As New HttpClient()
        Dim dt As System.IO.Stream = Await HttpCl.GetStreamAsync(url)           'データを読み取るStreamを開く
        Dim sr As New System.IO.StreamReader(dt, System.Text.Encoding.UTF8)
        str = sr.ReadToEnd()
        dt.Close()
    End Using

    'ダウンロードしたデータを表示する
    Console.WriteLine(str)

    DirectCast(sender, Button).Enabled = True
End Sub

 

GetAsync()メソッドで、URL(URI)からダウンロードする

Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    DirectCast(sender, Button).Enabled = False

    Dim url As Uri = New Uri("http://microsoft.com")
    Dim str As String

    Using HttpCl As New HttpClient()
        'ヘッダー部作成
        HttpCl.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko")
        HttpCl.DefaultRequestHeaders.Add("Accept-Language", "ja-JP")
        HttpCl.Timeout = TimeSpan.FromSeconds(5.0)

        Using response = Await HttpCl.GetAsync(url)
            str = Await response.Content.ReadAsStringAsync()
        End Using
    End Using

    'ダウンロードしたデータを表示する
    Console.WriteLine(str)

    DirectCast(sender, Button).Enabled = True
End Sub