Я использую обертку Emgu поверх Open CV, чтобы прошивать плоские (режим сканирования) изображения, так как я кодирую в c #.Эти изображения являются снимками экрана моего окна Chrome и т. Д., Где я прокрутил страницу вниз и сделал несколько снимков экрана.Я прошел через различные вопросы, уже размещенные на Stackoverflow.Ниже приведен мой код, и я не могу получить желаемый результат из-за нескольких повторяющихся исключений.
Мой код:
private string StitchFirstNImages(List<Mat> matList, string result_name)
{
using (Stitcher stitcher = new Stitcher(Stitcher.Mode.Scans, true))
using (AKAZEFeaturesFinder finder = new AKAZEFeaturesFinder())
{
stitcher.SetFeaturesFinder(finder);
stitcher.WaveCorrection = false;
stitcher.SetWarper(new PlaneWarper(1));
using (VectorOfMat vm = new VectorOfMat())
{
Mat result = new Mat();
for (int i = 0; i < matList.Count; i++)
{
vm.Push(matList[i]);
}
Console.WriteLine("Started Stitching = "+ matList[0].ToString());
Stitcher.Status status = stitcher.Stitch(vm, result);
if (status != Stitcher.Status.Ok)
{
Console.WriteLine("Can't stitch images, error code = " + status);
return String.Empty;
}
Emgu.CV.CvInvoke.Imwrite(result_name, result);
Console.WriteLine("stitching completed successfully\n" + result_name + " saved!");
return result_name;
}
}
}
В нескольких статьях stackoverflow предлагалось отключить WaveCorrection, ноэто не помогло мне.Я пытаюсь предоставить здесь набор из 63 изображений (мой набор может даже содержать сотни изображений) и сшивать их все за один раз.Я не делаю попарно шить.Мой набор содержит только png изображений .
Используемый набор изображений: https://ankurqa.mangopulse.com/sf/MzYyNF8xMTIyMjg2
С учетом следующих исключений:
System.AccessViolationException
HResult = 0x80004003
Сообщение = Попытка чтения или записи в защищенную память.Это часто указывает на то, что другая память повреждена.
Источник = Невозможно оценить источник исключения
StackTrace: Невозможно оценить трассировку стека исключений
Невозможно выделить хххххх байты
ERR_NEED_MORE_IMGS
Я новичок в вышивке, и приведенный выше код написан с помощью нескольких статей.
Может кто-нибудь предложить, если я делаю это правильно?Пожалуйста, дайте мне знать, если мне нужно изменить поиск объектов?(Я попробовал OrbFeaturesFinder, но опять-таки получал 1-е исключение, указанное выше)
Я прошел через несколько вопросов о стекаповороте и попытался настроить свой код, но пока не дал положительных результатов.