@Michael_Trofimov

Emgu.CV.CvInvoke exception in iisexpress.exe, как побороть ошибку в этом процессе?

Я использую надстройку над opencv для языка C# EMGU: 3.1.0.2282 в своем ASP.NET MVC5 проекте. А конкретнее я от туда беру библиотеку Emgu.CV.World (делаю ссылку на нее в проекте, сама она лежит в другой директории в каталоге EMGU папке bin). И папку x86, со сборками cv, опять же из каталога bin.

При запуске метода, кот. обращается к CvInvoke.Threshold () от EMGU, происходит ошибка:

"An exception is thrown at 0x2AF630B1 (cvextern.dll) in iisexpress.exe: 0xC0000005: Access violation reading location 0x00000000."

Что важно, этот проект с этими же библиотеками запускался ранее без ошибок, возможно нарушилась какая-то связь со сборками, однако все что я делал это - скопировал этот же проект в эту же директорию, но с др. названием папки в кот. он находится, запустил его и получил эту ошибку, после этого и предыдущий проект стал ее выдавать.

Для тестирования был создан проект WindowsForms с этим же функционалом и теми же библиотеками, ошибок не выдает.

Пробывал добавлять к проекту папку x64, менять настройки запуска (Any cpu, x86, x64), все тщетно.

IIS Express 10, vs 2015 community.
  • Вопрос задан
  • 349 просмотров
Решения вопроса 1
@Michael_Trofimov Автор вопроса
Ответ все-таки найден. Виной ошибки стала не замеченная во время последнего рефакторинга строка: imgGray.Dispose();

imageRotate = imgGray.Rotate(-avg, new Gray(255));
            }
            else
            {
                imageRotate = imgGray;
            }
            imgGray.Dispose();
            
            //return imageRotate.Bitmap;
            return BlackFilterImage(imageRotate);
        }

        private static Bitmap BlackFilterImage(Image<Gray, byte> img)
        {
            UMat resultImg = new UMat();
            CvInvoke.Threshold(img, resultImg, 105, 255, ThresholdType.BinaryInv); //Ошибка возникала тут

К сожалению характер ошибки повел меня изначально по ложному следу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы