Principale utente con più risposte
Individuazione regione di colore

Domanda
-
Ciao!
Sono di nuovo qui perchè mi possiate dare un "consiglio-idea" per come rintracciare un'intera area di colore (non il pixel) in un picturebox e successivamente cerchiarlo o evidenziarlo pensavo con drawrectangle.
Intato per individuare il colore pixel ho elaborato questo script basilare:
Dim Xcount As Integer = 0 Dim Ycount As Integer = 0 Dim btm As Bitmap = pb.Image For Xcount = 0 To btm.Width - 1 For Ycount = 0 To btm.Height - 1 Select Case btm.GetPixel(Xcount, Ycount).GetBrightness Case Color.Black.GetBrightness '... End Select Next Next
Help me please!!!
Ciao! ;)
Risposte
-
Grazie
prego.
la soluzione è lontana però guarda se usi un
TableLayoutPanel1
forse impostando la griglia in modo che bloccando alcuni pixel e sbloccando altri
si puo creare ovalshape solo su colore desiderato
Imports Microsoft.VisualBasic.PowerPacks Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For i As Integer = 1 To 56 Dim picturebox1 As New PictureBox Dim shapecontainer1 As New ShapeContainer Dim ovalshape1 As New OvalShape shapecontainer1.Parent = picturebox1 ovalshape1.Parent = shapecontainer1 ovalshape1.Size = New System.Drawing.Size(30, 30) ovalshape1.BorderColor = Color.Red Me.TableLayoutPanel1.Controls.Add(picturebox1) Next End Sub End Class
- Proposto come risposta Renato Marzaro []Moderator sabato 17 maggio 2014 12:04
- Contrassegnato come risposta Irina Turcu venerdì 23 maggio 2014 13:19
Tutte le risposte
-
-
Ciao, grazie intanto
Mi risulta però molto difficile definirlo in VB.NET, tu avresti un idea di come farlo?
Ho creato qualcosa del tipo:
Private Sub analizza(ByVal f As System.Drawing.Graphics) Dim Xcount As Integer = 0 Dim Ycount As Integer = 0 Dim btm As Bitmap = pb.Image Dim xregmin As Integer = 0 Dim xregmax As Integer = 0 Dim yregmax As Integer = 0 Dim yregmin As Integer = 0 For Xcount = 0 To btm.Width - 1 For Ycount = 0 To btm.Height - 1 Select Case btm.GetPixel(Xcount, Ycount).GetBrightness Case Color.Black.GetBrightness If xregmin = 0 Then If Xcount > xregmin Then xregmin = Xcount End If ElseIf Xcount > xregmax Then xregmax = Xcount ElseIf yregmin = 0 Then If Ycount > yregmin Then yregmin = Ycount End If ElseIf Ycount > yregmax Then yregmax = Ycount End If End Select Next Next f.DrawEllipse(Pens.Red, xregmin, yregmin, xregmax - xregmin, yregmax - yregmin) End Sub
Mentre attendo la tua risposta vedo di riguardare il tuo link
-
-
Si era proprio così!
Come dovrei fare??
L'immagine a cui dovrei applicare l'operazione è una di questo tipo dove mi si deve cerchiare i corpi in nero:
...
- Modificato VincenzoATAS venerdì 9 maggio 2014 12:36
-
-
-
Vorrei che quando cliccassi un bottone lui mi cerchiasse le aree in nero (che sono stelle o nebulose).
Grazie per la pazienza
non sono cosi bravo, elaborare o fare una scansione dell immagine per il momento non ne sono capace
prova qui http://freeimage.sourceforge.net/sourcecode.html
posso fare un autoclick
oppure come da foto sopra,
con l evento click della picturebox clicco su una parte dell immagine
e creo un ovalshape ...
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick Dim canvas As New ShapeContainer ' To draw an oval, change the following line to ' Dim theShape As New OvalShape Dim theShape As New OvalShape ' Set the form as the parent of the ShapeContainer. canvas.Parent = me ' Set the ShapeContainer as the parent of the Shape. theShape.Parent = canvas ' Set the size of the shape. theShape.Size = New System.Drawing.Size(30, 30) theShape.BorderColor = Color.Red PictureBox1.SendToBack() ' Set the location of the shape. theShape.Location = New System.Drawing.Point(MousePosition.X, MousePosition.Y) ' To draw a rounded rectangle, add the following code: End Sub
...
...
- Modificato eugenio sabato 10 maggio 2014 19:51
-
-
Grazie
prego.
la soluzione è lontana però guarda se usi un
TableLayoutPanel1
forse impostando la griglia in modo che bloccando alcuni pixel e sbloccando altri
si puo creare ovalshape solo su colore desiderato
Imports Microsoft.VisualBasic.PowerPacks Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For i As Integer = 1 To 56 Dim picturebox1 As New PictureBox Dim shapecontainer1 As New ShapeContainer Dim ovalshape1 As New OvalShape shapecontainer1.Parent = picturebox1 ovalshape1.Parent = shapecontainer1 ovalshape1.Size = New System.Drawing.Size(30, 30) ovalshape1.BorderColor = Color.Red Me.TableLayoutPanel1.Controls.Add(picturebox1) Next End Sub End Class
- Proposto come risposta Renato Marzaro []Moderator sabato 17 maggio 2014 12:04
- Contrassegnato come risposta Irina Turcu venerdì 23 maggio 2014 13:19
-