我正在尝试执行以下代码:
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('Paw01.png',0)
img = cv2.medianBlur(img,5)
ret,th1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
th2 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
cv2.THRESH_BINARY,11,2)
th3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
cv2.THRESH_BINARY,11,2)
titles = ['Original Image', 'Global Thresholding (v = 127)',
'Adaptive Mean Thresholding', 'Adaptive Gaussian Thresholding']
images = [img, th1, th2, th3]
for i in xrange(4):
plt.subplot(2,2,i+1),plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()`
但是,它会返回错误:
回溯(最近一次呼叫最后一次):文件“/ home / lrcorre / Desktop / Paper SIBGRAPI / OpenCV_Programs / Thresholding.py“,第3行,in 将matplotlib.pyplot导入为plt文件“/ home / lrcorre / Desktop / Paper SIBGRAPI / OpenCV_Programs / matplotlib.py”, 第3行,在 将matplotlib.pyplot导入为plt ImportError:没有名为pyplot的模块
我已经安装了matplotlib
,Opencv
和python 2.7
。
任何人都知道如何解决这个问题并继续?
答案 0 :(得分:0)
matplotlib是python绘图库目录名。在该目录下有一个像这样的文件pylot.py。
/dir1/dir2/.../site-packages/matplotlib/pyplot.py
在你的情况下,你在PYTHONPATH目录的某处定义了matplotlib.py。
/home/lrcorre/Desktop/PaperSIBGRAPI/OpenCV_Programs/matplotlib.py
这禁止导入所需的pyplot.py文件。因此,将文件名更改为不同的名称。
答案 1 :(得分:0)
确保您使用的是python 2.7版本:
import sys
print(sys.version) # parentheses necessary in python 3.
答案 2 :(得分:0)
确保要在其中导入模块的文件未命名为matplotlib.py。它为我解决了这个问题。