Я пытаюсь получить информацию о пикселе изображения, но System.AccessViolationException
происходит случайно.
Я пробовал много способов ... но не смог решить эту проблему.
Как я могу решить эту проблему
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
if (GetPixelData)
{
actualPointX = GetOriginalCoordinate(e.X, pickratio);
actualPointY = GetOriginalCoordinate(e.Y, pickratio);
form1.xLabel.Text = Convert.ToString(actualPointX);
form1.yLabel.Text = Convert.ToString(actualPointY);
b = Oimg.At<Vec3b>(actualPointX, actualPointY)[0];
g = Oimg.At<Vec3b>(actualPointX, actualPointY)[1];
r = Oimg.At<Vec3b>(actualPointX, actualPointY)[2];
form1.blueLabel.Text = Convert.ToString(b);
form1.greenLabel.Text = Convert.ToString(g);
form1.redLabel.Text = Convert.ToString(r);
form1.blueLabel.ForeColor = Color.Blue;
form1.greenLabel.ForeColor = Color.Green;
form1.redLabel.ForeColor = Color.Red;
GetPixelData = false;
form1.GetPixDataBtn.Enabled = true;
this.Cursor = Cursors.Default;
}
}
Проблема исключения возникает в этом коде
b = Oimg.At<Vec3b>(actualPointX, actualPointY)[0]; //<-here occurs problem
g = Oimg.At<Vec3b>(actualPointX, actualPointY)[1];
r = Oimg.At<Vec3b>(actualPointX, actualPointY)[2];
problem occurring process
- click 'Get Point Data'
- click image where you want to get the information of a pixel of pixel
- the other form shows the information of the pixel ( R,G,B,Coordinate )
- it works but sometimes don't
- when it doesn't work, visual studio shows me this (under Image)