2011-09-11 3 views
0

J'essaye de changer une image en noir et blanc sur un seuil variable pour l'usage dans un programme d'ocr. Mon problème est que je ne vois aucun résultat dans l'image qui est censée être traitée. Je rencontre une petite attente lors du rendu, donc je dois supposer qu'il est en train de faire quelque chose.Pourquoi cela ne montre aucun résultat dans PictureBox?

Imports System.Object 
Imports System.Drawing.Bitmap 

Public Class Form1 
    Dim x As Integer, y As Integer 
    Dim imgx As Integer, imgy As Integer 
    Dim img As Bitmap 
    Dim thresh As Bitmap 
    Dim pixelColor As Color 
    Dim threshcolor As Color 
    Dim tempcolor As Color 

    Public Function getpixel(ByRef x As Integer, ByRef y As Integer) As Color 

    End Function 

    Public Sub find_img_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles find_img.Click 
     open_img.ShowDialog() 
     img_dsp.Text = open_img.FileName() 
     img_loc.Text = open_img.FileName 
     img_dsp.ImageLocation = img_dsp.Text 
    End Sub 

    Public Sub find_img_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles find_img.LostFocus 
     img = (img_dsp.Image) 
     img_dsp.Refresh() 
     img_dsp.Text = open_img.FileName() 
     img_dsp.ImageLocation = img_dsp.Text 
     img = (img_dsp.Image) 
     img_dsp.Refresh() 
    End Sub 

    Public Sub render_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles render.Click 
     Dim myx As Integer 
     Dim myy As Integer 

     img_threshold.Image = img 
     thresh = img_threshold.Image 

     For myy = 1 To (img.Height - 1) 
      For myx = 1 To (img.Width - 1) 
       tempcolor = img.GetPixel(myx, myy) 

       If tempcolor.GetBrightness < NumericUpDown1.Value Then 
        thresh.SetPixel(x, y, Color.Black) 
       End If 

       If tempcolor.GetBrightness > NumericUpDown1.Value Then 
        thresh.SetPixel(x, y, Color.White) 
       End If 
      Next myx 
     Next myy 

     img_threshold.Image = thresh 
     img_threshold.Refresh() 
    End Sub 
End Class  
+0

Désolé, ce n'est pas un "debug mon code pour moi" genre de site. Vous devriez vraiment envisager de trouver quelqu'un pour revoir votre code. Un membre d'une équipe d'un ami. Peut-être codereview.stackexchange.com, pas sûr. –

+0

désolé, je m'enseigne vb pour mon projet de collège, et je demandais juste s'il y a quelque chose de flagrant que je fais. –

Répondre

0

Savez-vous ce qu'est une référence? écrire A = B, et changer A et écrire B = A? Si vous spécifiez que A et B pointent le même objet (une référence au même objet) en changeant l'un change l'autre aussi, ils occupent le même stockage en mémoire! Enseignez-vous de base, avant d'écrire des programmes, s'il vous plaît.

Questions connexes