C# Проблема исключения структуры доступа OpenCV 'Mat' - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь получить информацию о пикселе изображения, но 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

  1. click 'Get Point Data'
  2. click image where you want to get the information of a pixel of pixel
  3. the other form shows the information of the pixel ( R,G,B,Coordinate )
  4. it works but sometimes don't
  5. when it doesn't work, visual studio shows me this (under Image)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...