Ошибка при попытке использовать подключенные компоненты с Wand и ImageMagick 6.

Я пытаюсь использовать функцию подключенных компонентов в сценарии python3.8 (64-разрядная версия) с ImageMagick 6, но получаю сообщение об ошибке, говорящее о том, что мне нужно установить ImageMagick 7.0.8 или выше. Затем я попытался использовать последнюю версию ImageMagick 7.0.10, и при попытке импортировать изображение появляется ошибка, что MagickWand не найден, как показано ниже.

После некоторых исследований я нашел здесь и здесь некоторые предложения по установке 32-битной версии IM 6, поскольку в нескольких источниках говорится, что Image Magick 7.x не совместим с волшебной палочкой

Тогда, если связанные компоненты работают только с IM 7, но у IM 7 есть некоторые проблемы с Wand, есть ли другая альтернатива для получения координат областей в изображении, как это получается с подключенными компонентами в ImageMagick?

Я пробовал в WSL Ubuntu и с Cygwin. Заранее спасибо.

Это ошибка, которую я получаю, пытаясь использовать connected-components с помощью IM 6.9.10-23 Q16 x86_64 20190101.

>>> with Image(filename='input.png') as img:
...     objects = img.connected_components()

Traceback (most recent call last):
File "<stdin>", line 20, in <module>
File "/usr/local/lib/python3.8/dist-packages/wand/image.py", line 3891, in connected_components
    raise WandLibraryVersionError(msg)
wand.exceptions.WandLibraryVersionError: Method requires ImageMagick version 7.0.8-41 or greater.

Ошибка, которую я получаю, когда пытаюсь импортировать Image, используя последнюю версию IM 7.

>>> from wand.image import Image
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/wand/api.py", line 151, in <module>
    libraries = load_library()
  File "/usr/local/lib/python3.8/site-packages/wand/api.py", line 140, in load_library
    raise IOError('cannot find library; tried paths: ' + repr(tried_paths))
OSError: cannot find library; tried paths: []

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.8/site-packages/wand/image.py", line 18, in <module>
    from . import assertions
  File "/usr/local/lib/python3.8/site-packages/wand/assertions.py", line 155, in <module>
    from .color import Color  # noqa: E402
  File "/usr/local/lib/python3.8/site-packages/wand/color.py", line 10, in <module>
    from .api import library
  File "/usr/local/lib/python3.8/site-packages/wand/api.py", line 175, in <module>
    raise ImportError('MagickWand shared library not found.\n'
ImportError: MagickWand shared library not found.
You probably had not installed ImageMagick library.
Try to install:
  http://docs.wand-py.org/en/latest/guide/install.html

person Ger Cas    schedule 13.09.2020    source источник
comment
Пожалуйста, покажите ваш код жезла. Подключенные компоненты работают как с ImageMagick 6, так и с 7, если достаточно актуальных версий. Какая версия ImageMagick 6 или 7? Какая версия Python/Wand. Более поздние версии Python Wand совместимы с ImageMagick 7. Возможно, вы неправильно установили ImageMagick. Но я подчиняюсь сопровождающему Wand, Эрику МакКонвиллу.   -  person fmw42    schedule 13.09.2020
comment
Метод подключенных компонентов существует уже некоторое время, но метод C-API был введен только в версии 7.0.8-41. Wand представил поддержку в версии 0.5.5 библиотеки python. Однако, судя по описанию, система сейчас непригодна для использования. Это произойдет, если вы смешаете 32- и 64-битные библиотеки и среды выполнения, и, вероятно, произойдет при смешивании установок между Windows, WSL ubuntu и Cygwin.   -  person emcconville    schedule 13.09.2020
comment
@ fmw42 Спасибо за ваш ответ. Я обновляю свой вопрос, добавляя ошибку, которую я получаю при попытке использовать connected-components с помощью IM 6.   -  person Ger Cas    schedule 13.09.2020
comment
Эрик знает лучше. Я позволю ему работать с тобой.   -  person fmw42    schedule 13.09.2020
comment
@emcconville Спасибо, Эрик. Итак, мне нужно установить 64-разрядную версию ImageMagick и 64-разрядную версию python3 или 32-разрядную версию ImageMagick и 32-разрядную версию Python3? На самом деле я установил только значения по умолчанию для обоих, не зная, что некоторые из них были 32-битными. Или точно не будет работать ни в WSL Linux, ни в Cygwin? Как правильно заставить его работать под Windows 10? Спасибо   -  person Ger Cas    schedule 13.09.2020
comment
Потребуется Python3 x86-64 и ImageMagick-7.0.10-29-Q8-x64-dll.exe. Обязательно удалите предыдущие версии ImageMagick перед установкой. Я не могу говорить о средах WSL и Cygwin.   -  person emcconville    schedule 14.09.2020
comment
@emcconville Большое спасибо. Теперь он работает, следуя вашим предложениям в Windows. Единственная проблема заключается в том, что когда я пытался использовать подключенные компоненты с input.png из здесь Я получил это error wand.exceptions.ResourceLimitError: too many objects ´z.png' @ error/vision.c/ConnectedComponentsImage/437, и когда я попробовал черно-белое изображение, я получил координаты с очень длинными числами, такими как 0: (4643176031446892544, 4643176031446892544), но я открою новый вопрос для последнего.   -  person Ger Cas    schedule 14.09.2020
comment
Похоже на переполнение буфера. Вероятно, ошибка в Wand или MagikWand.   -  person emcconville    schedule 14.09.2020