python - 无法在 ipython 项目上使用 matplotlib.pyplot 显示图像
问题描述
我正在尝试使用我自己的目录在 github 上运行FienSoP/canny_edge_detector代码。但不是显示图形,而是显示图形大小()。
canny_Edge_Detector.ipynb
%matplotlib inline
from utils import utils
import canny_edge_detector as ced
imgs = utils.load_data('/Users/office/Mask_RCNN/office/images')
utils.visualize(imgs, 'gray')
<Figure size 1440x2880 with 0 Axes>
实用程序.py
import numpy as np
import skimage
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import os
import scipy.misc as sm
import glob
def rgb2gray(rgb):
r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2]
gray = 0.2989 * r + 0.5870 * g + 0.1140 * b
return gray
def load_data(dir_name):
imgs = []
data_path = os.path.join(dir_name,'*g')
files = glob.glob(data_path)
for filename in files:
img = mpimg.imread(filename)
img = rgb2gray(img)
imgs.append(img)
return imgs
def visualize(imgs, format=None, gray=False):
plt.figure(figsize=(20, 40))
for i, img in enumerate(imgs):
if img.shape[0] == 3:
img = img.transpose(1,2,0)
plt_idx = i+1
plt.subplot(len(imgs), 1, plt_idx)
plt.imshow(img, format)
plt.show()
由于,我是初学者,描述的答案将非常有帮助。先感谢您。
解决方案
复制字符串
'/Users/office/Mask_RCNN/office/images'
您在问题中直接从问题中提供到 python 控制台,提供以下内容:
'\xe2\x81\xa8/Users\xe2\x81\xa9/office\xe2\x81\xa9/Mask_RCNN\xe2\x81\xa9/office/images'
因此,您最初复制此字符串的源添加了一些零宽度字符,当您将字符串粘贴到浏览器中时这些字符不可见,但会导致 python 在一个奇怪的位置查找您的数据。这是一个相关的问题。
如果您手动重新输入字符串(或在我的答案中复制+粘贴顶部字符串),您应该没问题。
推荐阅读
- javascript - 更改 iframe url 更改父窗口 url 阻止具有原点的框架
- java - 返回集群环境中的servlet
- c# - 通过 Microsoft Graph 邀请用户的多项选择错误
- typo3 - Typo3/Fluid:使用 uid 和 pid 渲染新闻内容
- angularjs - AngularJS 中的 Ng-Gauge 指令,更改 Ng-Gauge 特定属性的样式
- python - 删除矩阵中的行或列时输出错误
- google-bigquery - 将数据从 Google Storage 加载到 BigQuery 时如何执行 UPSERT?
- python - 验证蛋白质序列
- python-3.x - 使用 `psutils` 有效地检索所有正在运行的进程的统计信息
- django - 创建模型对象时字段值的平均值