Ответы пользователя по тегу OpenCV
  • Почему в примере цикл вечен. Вернее один из параметров 0 всегда?

    @Lynatik001 Автор вопроса
    непонятно ввобщем как оно там цикл должно было пройти. сделал через другой метод
    private void openToolStripMenuItem_Click(object sender, EventArgs e)
            {
    
                OpenFileDialog openFileDialog = new OpenFileDialog();
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    try {
                        //capture = new VideoCapture(openFileDialog.FileName);
                        
                        var imgScene = new Image<Bgr, byte>(openFileDialog.FileName);
                        Mat imgOut = new Mat();
                        CvInvoke.MatchTemplate(imgScene, template, imgOut,  Emgu.CV.CvEnum.TemplateMatchingType.CcoeffNormed);
                        
                        Mat imgoutNorm = new();
                        CvInvoke.Normalize(imgOut, imgoutNorm,0,1, Emgu.CV.CvEnum.NormType.MinMax);
    
                        float[,] matches  = (float[,])imgoutNorm.GetData();
    
    
                        for (int y = 0; y < matches.GetLength(0); y++)
                        {
                            for (int x = 0; x < matches.GetLength(1); x++)
                            {
                                double matchScore = matches[y, x];
                                if (matchScore > 0.99)
                                {
    
                                    Rectangle rect = new Rectangle(new Point(x, y), template.Size);
                                    imgScene.Draw(rect, new Bgr(Color.Blue), 1);
                                }
    
                            }
    
                        }
    
                        pictureBox1.Image = imgScene.AsBitmap();
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
    
                    //capture.Read(img);
                   // pictureBox1.Image = img.ToBitmap();
                    
                    
                }
            }

    но мне кажется ето или рукожопством и мин макс метод был по лучше. если кто прошареный зайдет в эту тему то не отказался бы от обяснений.
    Ответ написан
    Комментировать