2017-09-13 7 views
0

2つ(またはそれ以上)の画像を区別できるアルゴリズムを作成したいと思います。たとえば、2つの画像、螺旋状および楕円形の銀河画像を取り、その2つの違いに気づいて螺旋状の画像を選択するプログラム。私はこれをVB.NETとしたいと思います。与えられた数の画像から画像を選択できるプログラムを作成することは可能ですか?例えば螺旋銀河対楕円体銀河

私は初心者ではありませんが、これは妥当な時間内に行うことができますか?どのような種類の図書館が必要でしょうか?他に何かありますか?

+0

これは答えになるはずがありません。私は、機械学習の典型的な使用例のように聞こえます。私はあなたの最善の策は、画像の例から学ぶことができるニューラルネットワークを構築することだと思います... – Christian

+0

ニューラルネットワークを構築する方法は私のスキルセットから外して、私が欲しいのは、2つの画像の違いを検出するための実用的なアプリケーションです。 – Jonathan

+0

さて、それらをピクセル単位で比較したいのであれば、それは簡単です。しかし、あなたはそれらをいくつかのセマンティックアスペクト/文脈で比較したいと思うとすぐに、ある種のクラシファイアが必要になります。あなたはそれを自分で作ることができます。これはおそらくかなり難しく、マシン自身でそれをやりましょう:-)ただ考えました。 – Christian

答えて

0

あなたが次のように求めているものに近いものは、より複雑な比較では、何らかの種類の機械学習ネットワークが必要です。

Public Class Form1 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Button1.Click 
    PictureBox1.Image = Bitmap.FromFile("C:\Users\Public\Pictures\Sample 
    Pictures\Tulips.jpg") 
    PictureBox2.Image = Bitmap.FromFile("C:\Users\Public\Pictures\Sample 
    Pictures\Tulips.jpg") 
Dim a As Boolean = AreSameImage(PictureBox1.Image, PictureBox2.Image) 
If a Then 
    MsgBox("Identical image") 
Else 
    MsgBox("Different images") 
End If 
End Sub 

Public Function AreSameImage(ByVal I1 As Image, ByVal I2 As Image) As Boolean 
Dim BM1 As Bitmap = I1 
Dim BM2 As Bitmap = I2 
For X = 0 To BM1.Width - 1 
    For y = 0 To BM2.Height - 1 
    If BM1.GetPixel(X, y) <> BM2.GetPixel(X, y) Then 
     Return False 
    End If 
    Next 
Next 
Return True 
End Function 
End Class 
0

IMHOでは、画像処理(一般的な信号処理)は、プログラムするのが最も難しいことの1つです。私たちの脳がそう簡単に、音と画像を区別し、分類することは、コンピュータにとっては非常に困難です。

ギャラクシーシェイプを「単純」に表現するアルゴリズムを実装したい場合は、プログラミングスキルの他に、画像処理やアルゴリズムについての知識や、特定の画像に精通している必要があります処理ライブラリ。この2番目の選択肢として、.NET用の画像処理ライブラリがたくさんあります。複数の選択肢がありますが、Googleだけでも使えますが、画像処理の基礎を学び、そのライブラリで作業することを学ぶ必要があります。

あなたの質問に答える:「これは妥当な時間内に行えますか?」前に画像処理プログラミングをしていないのであれば、いいえと言います。

関連する問題