|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
[VB.NET] Intercettare un colore in una immagine
Devo realizzare questo:
Ho delle immagine fatte con una "telecamera termica" In questa immagine ho uno sfondo tutto BLU per il freddo Ed un oggetto ROSSO-GIALLO per il caldo ben distinto e definito Mi serve tramite un'applicazione inviare le foto e lui automaticamente mi individua la posizione della parte ROSSO-GIALLO. E' possibile fare una cosa del genere???? Cioè lavorare con i colori????? Ci sono dei compontenti o non servono????? Ciao e grazieeeeeeeeeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Ipotizza che si possa rilevare una zona rosso-gialla... e poi? compontenti sono componenti o sono competenti?
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
ok
Quote:
Quindi vedere di quanto si è spostato. In pratica la foto riguarda sempre la stessa immagine e parliamo di 2 metri per 2. Parlavo di componenti!!!!!! ahahahahh
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Io proverei a fare cosi'. Rileverei dall'immagine la sola componente rossa, per ciascun pixel. Effettuerei la ricerca del centro di massa, come se i pixel fossero corpi di peso pari alla componente rossa. Ne risultera' una coordinata che non necessariamente sara' coincidente con un corpo rosso (se ce n'e' uno solo allora si', ma potrebbe non essere necessariamente cosi') In ogni caso successive variazioni di posizione di un corpo rosso si rifletterebbero sulla variazione della nuova coordinata, e quindi si potrebbe avere un'indicazione dello spostamento relativo rispetto alla penultima calcolata. Ovviamente si puo' ulteriormente ridurre all'analisi della sola componente Y della coordinata. Il tutto dovrebbe anche essere decisamente veloce.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
ok
Quote:
Adesso però c'è da svilupparlo.....ci sono componenti per lavorare con i colori????? Hai qualche esempio da propormi....ho fatto delle ricerche ma non riesco a trovar nulla con i colori.
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Allora ogni pixel ti dice gia' quale e' il colore che lo rappresenta in modo diretto, enunciando le componenti RGB Quindi puoi usare la GetPixel (o qualunque cosa ci sia in VB) e il risultato saranno gia' le 3 componenti, impacchettate a seconda del formato dell'immagine.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
![]() |
![]() |
![]() |
#7 |
Junior Member
Iscritto dal: Nov 2008
Messaggi: 1
|
Selezionare parte dell'immagine
Desidererei sapere se vi è la possibilità di selezionare una parte di una immagine .jpg o .bmp per poi adoperare i comandi get pixel and set pixel
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Codice:
Dim regioneGiallo As New List(Of Point) Dim colorePx As Color For x As Integer = 0 To BMP.Width - 1 For y As Integer = 0 To BMP.Height - 1 colorePx = BMP.GetPixel(x, y) If colorePx = Color.FromArgb(255, 255, 0) Then regioneGiallo.Add(New Point(x, y)) Next Next Dim centroRegioneX As Integer = 0 Dim centroRegioneY As Integer = 0 Dim xTot As Integer = 0 Dim yTot As Integer = 0 For Each P As Point In regioneGiallo xTot += P.X yTot += P.Y Next centroRegioneX = xTot / regioneGiallo.Count centroRegioneY = yTot / regioneGiallo.Count MsgBox(centroRegioneX & ", " & centroRegioneY) BMP.SetPixel(centroRegioneX, centroRegioneY, Color.Black) PictureBox1.Image = BMP Le ultime 3 linee sono solo a scopo di verifica "ad occhio". Se interessa anche la regione rossa, suggerirei di dare un "peso" diverso alle coordinate dei singoli punti, a seconda che siano più o meno caldi... Grosso modo è il concetto del calcolo del C.M. di un sistema di N punti materiali, come già indicato da gugoXX... ![]() |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
@MarcoGG: la tua risposta è ottima, senonchè dovresti chiedere in prestito a Doc la sua Delorean per tornare indietro di 8 mesi...
![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
![]() Lo so, hai ragione, me ne sono accorto dopo. Avevo visto solo la data dell'ultimo post di CarloDON, mentre non ho fatto caso alle precedenti... ![]() |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
mica é colpa sua se ci sono sti esempi di forum digging :P
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:02.