fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Visión Artificial C...
 
Avisos
Vaciar todo

Visión Artificial C#

8 Respuestas
2 Usuarios
0 Reactions
2,357 Visitas
ionthas
Respuestas: 153
Topic starter
(@ionthas)
Estimable Member
Registrado: hace 17 años

Buenas a todos,

Estoy haciendo el tutorial de visión artificial de Mif. El problema está en que al declarar el bitmap en C#, me salta un error que dice lo siguiente:

No se controló NullReferenceException
Referencia a objeto no establecida como instancia de un objeto.

Código:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WebCamCSharp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
TScreen.Enabled = true;
webCam1.Start();
}

private void button2_Click(object sender, EventArgs e)
{
TScreen.Enabled = false;
webCam1.Stop();
}

private void TScreen_Tick(object sender, EventArgs e)
{
PicActual.Image = webCam1.Imagen;

Bitmap ImgOriginal = new Bitmap(PicActual.Image);
Bitmap ImgResultante = new Bitmap(PicActual.Image);

int rojo, verde, azul;
int ultimoazulX, ultimoazulY;
int tolerancia = 5;
int x, y;

for (x = 0; x == ImgOriginal.Height - 1; x+=10)
{
for (y = 0; y == ImgOriginal.Width - 1; y+=10)
{
rojo = ImgOriginal.GetPixel(x,y).R;
verde = ImgOriginal.GetPixel(x, y).G;
azul = ImgOriginal.GetPixel(x, y).B;

if (azul >= rojo - tolerancia)
{
if (azul >= verde - tolerancia)
{
ImgResultante.SetPixel(x, y, Color.Yellow);
ImgResultante.SetPixel(x + 1, y, Color.Yellow);
ImgResultante.SetPixel(x, y + 1, Color.Yellow);
ImgResultante.SetPixel(x + 1, y + 1, Color.Yellow);

ultimoazulX = x;
ultimoazulY = y;
}
}
else
{
ImgResultante.SetPixel(x, y, Color.Black);
}
}
}
}

private void button3_Click(object sender, EventArgs e)
{
webCam1.Configuracion();
}
}
}

He buscado en internet y por lo que he visto la declaración del bitmap la hago bien.

Bitmap ImgOriginal = new Bitmap(PicActual.Image);
Bitmap ImgResultante = new Bitmap(PicActual.Image);

Seguro que es una tonteria. xD

Saludos y gracias.

Responder
7 respuestas
ranganok
Respuestas: 3875
(@ranganok)
Ardero
Registrado: hace 19 años

Wolfskin, haz la depuración paso a paso y mira en que punto exactamente salta la excepción.

S2

Ranganok Schahzaman

Responder
ionthas
Respuestas: 153
Topic starter
(@ionthas)
Estimable Member
Registrado: hace 17 años

Después de estar un buen rato lo encontré. La declaración de los bitmaps estaba mal. La correcta es esa: (creo) xD

Bitmap ImgOriginal = (Bitmap)(PicActual.Image);
Bitmap ImgResultante = (Bitmap)(PicActual.Image);

EDITO: Falsa alarma, con el código de arriba no salta la excepción en la declaración de los bitmaps, peró cuando quiero acceder a ellos si salta.

Por lo que he visto es como si los bitmaps cuando les paso la imagen, esa sea null.

Saludos y gracias

Responder
ionthas
Respuestas: 153
Topic starter
(@ionthas)
Estimable Member
Registrado: hace 17 años

Ahora si que lo resolví, culpa mia xD.

Me deje de pasar una muestra de la imagen al poner la WebCam, sin esa imagen me lo detecataba como NULL.

Saludos y gracias.

Responder
Página 2 / 2
Compartir: