【发布时间】:2019-04-25 04:23:50
【问题描述】:
我正在尝试使用我自己的目录在 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>
util.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()
既然,我是一个初学者描述的答案将非常有帮助。提前谢谢你。
【问题讨论】:
-
你能不能尝试一下: 1. print(len(imgs)) (看看你的列表中是否真的有图片)。 2. print([a.shape for a in imgs])
-
1. 2. 显示为空。但图像存在于文件夹中
-
好的,所以您的问题与加载图像有关。您可以将 print('files: {}'.format(files)) 放入函数 load_data 中,在 glob.glob 语句下吗?让我们看看文件是否找到但没有正确加载,或者根本没有找到。
-
它以文件的形式给出结果:[ ]
-
是的,他们不是。它给了我 /\u2068Users\u2069/office/Mask_RCNN/\u2068office\u2069/images/\u2069/*g'。
标签: python matplotlib