import imageio.v3 as iio
im = iio.imread('my_image.png')
print(im.shape)
您还可以使用imageio从各种不同的源加载:
im = iio.imread('http://upload.wikimedia.org/wikipedia/commons/d/de/Wikipedia_Logo_1.0.png')
编辑:*
要加载特定文件夹中的所有*.png文件,可以使用glob包:
import imageio.v3 as iio
import glob
for im_path in glob.glob("path/to/folder/*.png"):
im = iio.imread(im_path)
print(im.shape)
# do whatever with the image here
import os
import matplotlib.pyplot as plt
import cv2
import numpy as np
# Get the file paths
im_files = os.listdir('path/to/files/')
# imagine we only want to load PNG files (or JPEG or whatever...)
EXTENSION = '.png'
# Load using matplotlib
images_plt = [plt.imread(f) for f in im_files if f.endswith(EXTENSION)]
# convert your lists into a numpy array of size (N, H, W, C)
images = np.array(images_plt)
# Load using opencv
images_cv = [cv2.imread(f) for f in im_files if f.endswith(EXTENSION)]
# convert your lists into a numpy array of size (N, C, H, W)
images = np.array(images_cv)
#IMPORTANT: This Code only works with Python>=3.6
Directory="."#Your directory
import os
import tkinter
import numpy
tk=tkinter.Tk()
tk.overrideredirect(1)
tk.geometry("0x0")
Items=[]
for i in os.listdir(Directory):
fn=Directory+os.sep+i
imgArray=[]
image=tkinter.PhotoImage(file=fn)
for w in range(image.width()):
entry=[]
for h in range(image.height()):
entry.append(image.get(w,h))
imgArray.append(entry)
imgArray=numpy.array(imgArray)
Items.append(imgArray)
tk.destroy()
9条答案
按热度按时间8oomwypt1#
根据doc,
scipy.misc.imread
从SciPy 1.0.0开始不建议使用,并将在1.2.0中删除。请考虑改用imageio.v3.imread
。示例:
您还可以使用imageio从各种不同的源加载:
要加载特定文件夹中的所有
*.png
文件,可以使用glob
包:eit6fx6z2#
只需使用scipy、glob并安装PIL(
pip install pillow
),就可以使用scipy的imread方法:更新
根据该文档,
scipy.misc.imread
从SciPy 1.0.0开始被弃用,并将在1.2.0中删除。请考虑使用imageio.imread instead
。请参见the answer by Charles。noj0wjuj3#
这也可以通过PIL library的
Image
类来完成:.getdata()
-np.array(im_frame)
也可以工作 *csbfibhn4#
最好使用(非常)常用的软件包:
knsnq2tg5#
如果要加载图像,则可能要使用
matplotlib
和opencv
中的一个或两个来操作和查看图像。出于这个原因,我倾向于使用他们的图像读取器并将其追加到列表中,然后从中创建一个NumPy数组。
需要注意的唯一区别如下:
因此,大小为256*256的单个图像将使用opencv生成大小为(3,256,256)的矩阵,使用matplotlib生成大小为(256,256,3)的矩阵。
z8dt9xmd6#
要读入一个图像:
迭代读取多个图像。
这个答案类似于this,但更简单(不需要
.getdata()
)。68bkxrlz7#
我做了一些改动,它的工作原理是这样的,转储到一个数组中,假设所有的图像都是相同的维度。
nfzehxib8#
我喜欢内置的pathlib库,因为它有
directory= Path.cwd()
这样的快速选项,结合opencv,可以很容易地将pngs读取到numpy数组中,在这个例子中,你甚至可以检查图像的前缀。输出:
f0ofjuux9#
如果您更喜欢标准库: