Bonjour,
je commence à developper ma première application en vb avec visual basic 2005 express.
Je cherche à faire un logiciel pour faire du traitement d'image basé sur la morphologie mathématique.
Pour me faire la main je commence par coder les fonctions de base (inversion, binarisation, seuillage ... etc)
J'ai écrit le code ci-dessous pour inverser l'image mais je trouve son execution un peu trop longue et je n'ose pas imaginer ce que ça va donner qd j'aurais des fonctions bien plus compliquées...
Pourriez-vous me dire ce qui fait que cela prend du temps et si on peut l'améliorer ?
Autre question, je travaille comme le code le montre avec des bitmaps, pour un bon nombre de fonctions je n'aurai à travailler qu'avec des images binaires ou en niveaux de gris (256).
Y'a t-il un format plus adapté que je pourrais simplement manipuler comme un tableau à deux dimensions avec dans chaque case le niveau de gris du pixel sans avoir à passer par le argb à chaque fois ?
Merci d'avance
Code :
Dim image1 As Bitmap
Dim x As Integer
Dim y As Integer
Dim c As Color
Dim c2 As Color
Cursor = System.Windows.Forms.Cursors.WaitCursor
image1 = New Bitmap(OpenFileDialog1.FileName)
For x = 0 To image1.Width - 1
For y = 0 To image1.Height - 1
c = image1.GetPixel(x, y)
c2 = Color.FromArgb(255 - c.R, 255 - c.G, 255 - c.B)
image1.SetPixel(x, y, c2)
Next
Next
Dim NewMDIChild As New Form()
NewMDIChild.MdiParent = Me
NewMDIChild.Text = "Image inversée"
NewMDIChild.BackgroundImage = image1
NewMDIChild.BackgroundImageLayout = ImageLayout.Stretch
NewMDIChild.Show()
Cursor = System.Windows.Forms.Cursors.Default