私は Visual Basic が初めてで、過去に matlab で画像処理を行ったことがあります。ただし、現時点では Visual Basic での画像処理が必要です。さて、私は画像を表示し、グレースケールへの変換について読むことができました。ただし、私の画像は jpeg 形式であり、いくつかのグレースケール コンバーター チュートリアルで bmp 画像のみのビットマップ関数を実行し続け、コードは JPEG 形式の操作でエラーを生成し続けます。jpeg を読み込んでグレースケール操作を実行するにはどうすればよいですか。これがコードです。
Public Class Form1
Private Sub showButton_Click(sender As System.Object, e As System.EventArgs) Handles showButton.Click
' Show the Open File dialog. If the user clicks OK, load the
' picture that the user chose.
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.Load(OpenFileDialog1.FileName)
End If
End Sub
Private Sub GrayImageButton_Click(sender As System.Object, e As System.EventArgs) Handles GrayImageButton.Click
Dim bm As New jpeg(PictureBox1.Image)
Dim X As Integer
Dim Y As Integer
Dim clr As Integer
For X = 0 To bm.Width - 1
For Y = 0 To bm.Height - 1
clr = (CInt(bm.GetPixel(X, Y).R) + _
bm.GetPixel(X, Y).G + _
bm.GetPixel(X, Y).B) \ 3
bm.SetPixel(X, Y, Color.FromArgb(clr, clr, clr))
Next Y
Next X
PictureBox1.Image = bm
End Sub
私が受け取っているエラーは
エラー 1 : 'WindowsApplication1.jpeg' 型の値を 'System.Drawing.Image' に変換できません。
これを bmp 画像で実装すると、完全に機能しますが、jpeg では機能しません。この問題について何か助けていただければ幸いです。ありがとう