我正在读取磁盘上的图像,如何像前50张图像一样绘制? [英] I'm reading images on the disk, how to plot like the first 50 images?
本文介绍了我正在读取磁盘上的图像,如何像前50张图像一样绘制?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在读取磁盘上的图像,如何制作
以及将其放置在屏幕上以绘制前50张图像的位置,我想确保自己正在读取正确的图像,用于深度学习.
def load_clef_database():img_data_list = []dataset_dir ="/Users/PlantCLEF2015";根= os.path.join(dataset_dir,'火车')文件名= []#个文件class_species = []class_species_unique = []class_species_unique_id = []class_familys = []class_geni = []class_ids = []class_contents = []元数据= []#xml datleafscans = []leafscansfiles = []对于os.listdir(root)中的文件:路径= os.path.join(根,文件)如果file.endswith('.xml'):metadata.append(path)elif file.endswith('.jpg'):filenames.append(路径)文件名=已排序(文件名)元数据=已排序(元数据)#断言len(文件名)== len(元数据)对于范围内的我(len(metadata)):class_data = etree.parse(metadata [i])class_family = class_data.findtext('Family')class_genus = class_data.findtext('Genus')class_spec = class_data.findtext('Species')class_id = class_data.findtext('ClassId')class_content = class_data.findtext('Content')如果class_content =='花':#打印(class_content)leafscans.append(metadata [i])leafscansfiles.append(filenames [i])如果class_spec不在class_species_unique中:class_species_unique.append(class_spec)class_geni.append(class_genus)class_familys.append(class_family)class_ids.append(class_id)如果class_id不在class_species_unique_id中:class_species_unique_id.append(class_id)class_contents.append(class_content)打印(len(leafscansfiles))'''
解决方案
一种绘制图像的快速方法是使用skimage的
I am reading images on the disk, how to make a for
and where to put it to plot the first 50 images on the screen, I want to make sure, that I'm reading the right images, it's for deep learning.
def load_clef_database():
img_data_list = []
dataset_dir = "/Users/PlantCLEF2015"
root = os.path.join(dataset_dir, 'train')
filenames = [] # files
class_species = []
class_species_unique = []
class_species_unique_id = []
class_familys = []
class_geni = []
class_ids = []
class_contents = []
metadata = [] # xml dat
leafscans = []
leafscansfiles = []
for file in os.listdir(root):
path = os.path.join(root, file)
if file.endswith('.xml'):
metadata.append(path)
elif file.endswith('.jpg'):
filenames.append(path)
filenames = sorted(filenames)
metadata = sorted(metadata)
# assert len(filenames) == len(metadata)
for i in range(len(metadata)):
class_data = etree.parse(metadata[i])
class_family = class_data.findtext('Family')
class_genus = class_data.findtext('Genus')
class_spec = class_data.findtext('Species')
class_id = class_data.findtext('ClassId')
class_content = class_data.findtext('Content')
if class_content == 'Flower':
# print(class_content)
leafscans.append(metadata[i])
leafscansfiles.append(filenames[i])
if class_spec not in class_species_unique:
class_species_unique.append(class_spec)
class_geni.append(class_genus)
class_familys.append(class_family)
class_ids.append(class_id)
if class_id not in class_species_unique_id:
class_species_unique_id.append(class_id)
class_contents.append(class_content)
print(len(leafscansfiles))'''
解决方案
One quick way of plotting the images is using skimage's montage function
import matplotlib.pyplot as plt
import numpy as np
from skimage.util import montage
#creating a random image
images = np.zeros((50, 150, 150, 3), np.uint8)
for i in range(images.shape[0]):
images[i]=np.random.randint(0, 255, 3)
print("image size before montage", images.shape)
image size before montage (50, 150, 150, 3)
out = montage(images, multichannel=True)
print("image size after montage", out.shape)
image size after montage (1200, 1200, 3)
plt.figure(figsize=(10,10))
plt.imshow(out)
plt.show()
这篇关于我正在读取磁盘上的图像,如何像前50张图像一样绘制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文