尝试从skimage导入过滤器时出现DLL加载失败错误

时间:2020-01-09 23:12:12

标签: python python-3.x anaconda scikit-image

我正在将Anaconda 4.8.0和Python 3.6.9环境一起使用。使用Numpy 1.18.1,SciPy 1.4.1 scikit-image 0.16.2。虽然我不确定这有多重要,但也安装了六个1.13。我想对图像进行一些简单的边缘检测,但是在导入所需的包时遇到了一些麻烦。我读取图像,将其转换为灰度,并希望应用边缘滤镜。 我的代码看起来像这样

from PIL import Image 
from pathlib import Path
from skimage.filters.edges import sobel_h, sobel_v
pass_folder = Path('D:/Pycharm files/neuralnetwork/results/pass')
im = Image.open(pass_folder/'test.PNG').convert('L')
edges_h = sobel_h(im)
edges_v = sobel_v(im)
im.show(edges_h)

我收到以下错误

Traceback (most recent call last):
  File "C:/Users/arne.biermans/.PyCharmCE2018.2/config/scratches/scratch_8.py", line 5, in <module>
    from skimage.filters.edges import sobel_h, sobel_v
  File "C:\Users\arne.biermans\Conda envs\Tensorflow\lib\site-packages\skimage\filters\__init__.py", line 3, in <module>
    from .edges import (sobel, sobel_h, sobel_v,
  File "C:\Users\arne.biermans\Conda envs\Tensorflow\lib\site-packages\skimage\filters\edges.py", line 17, in <module>
    from ..restoration.uft import laplacian
  File "C:\Users\arne.biermans\Conda envs\Tensorflow\lib\site-packages\skimage\restoration\__init__.py", line 5, in <module>
    from .deconvolution import wiener, unsupervised_wiener, richardson_lucy
  File "C:\Users\arne.biermans\Conda envs\Tensorflow\lib\site-packages\skimage\restoration\deconvolution.py", line 6, in <module>
    from scipy.signal import fftconvolve, convolve
  File "C:\Users\arne.biermans\Conda envs\Tensorflow\lib\site-packages\scipy\signal\__init__.py", line 289, in <module>
    from . import sigtools, windows
  File "C:\Users\arne.biermans\Conda envs\Tensorflow\lib\site-packages\scipy\signal\windows\__init__.py", line 41, in <module>
    from .windows import *
  File "C:\Users\arne.biermans\Conda envs\Tensorflow\lib\site-packages\scipy\signal\windows\windows.py", line 9, in <module>
    from scipy import fftpack, linalg, special
  File "C:\Users\arne.biermans\Conda envs\Tensorflow\lib\site-packages\scipy\fftpack\__init__.py", line 99, in <module>
    from .basic import *
  File "C:\Users\arne.biermans\Conda envs\Tensorflow\lib\site-packages\scipy\fftpack\basic.py", line 12, in <module>
    from . import _fftpack
ImportError: DLL load failed: The specified module could not be found.

如果我只是导入skimage并使用print(skimage.__version__),则会得到0.16.2,因此skimage似乎已正确安装。我需要使用Python 3.6,因为我还需要使用Tensorflow。 我也尝试安装Numpy-MKL,但这会导致错误。我也尝试过from skimage.filters import sobel_h, sobel_v,但这也不起作用。也许这是微不足道的,但我无法在这里找到问题所在。任何帮助表示赞赏。最近,我花了更多时间尝试各种程序包,而不是实际的编码。

编辑:我完全删除了Anaconda,然后从头开始重新安装。运行Jupyter笔记本电脑时,我可以很好地导入模块并打印其版本,以查看它们是否正确安装。在Pycharm中,现在什么也没有加载,每个模块都会导致错误“找不到模块”。 Pycharm指向正确的解释器。我将放弃Pycharm,只使用Jupyter笔记本。我没有时间尝试解决这个问题。

1 个答案:

答案 0 :(得分:0)

通过重新安装Pycharm修复了该问题。