如何获取文件夹中所有jpg文件的jpg图像宽度和高度

尼尚

我有一个poster_folder包含 jpg 文件的文件夹,例如 1.jpg,2.jpg, 3.jpg

此文件夹的路径是:

from pathlib import Path
from PIL import Image

images_dir = Path('C:\\Users\\HP\\Desktop\\PGDinML_AI_IIITB\\MS_LJMU\\Dissertation topics\\Project_2_Classification of Genre for Movies using Machine Leaning and Deep Learning\\Final_movieScraping_data_textclasification\\posters_final').expanduser()

我有一个带有 jpg 图像信息的数据框:

df_subset_cleaned_poster.head(3)

movie_name  movie_image

Lion_king   1.jpg
avengers    2.jpg
iron_man    3.jpg

我试图在文件夹中绘制所有 jpg 文件(因为它们具有不同的分辨率)的宽度和高度的散点图,如下所示:

height, width = np.empty(len(df_subset_cleaned_poster)), np.empty(len(df_subset_cleaned_poster))

for i in range(len(df_subset_cleaned_poster.movie_image)):
    w, h = Image.open(images_dir.joinpath(df_subset_cleaned_poster['movie_image'][i])).size
    width[i], height[i] = w, h
plt.scatter(width, height, alpha=0.5)
plt.xlabel('Width'); plt.ylabel('Height'); plt.show() 

这是抛出错误: KeyError: 208

在此处输入图片说明

df_subset_cleaned_poster.info()

<class 'pandas.core.frame.DataFrame'>
Int64Index: 10225 entries, 0 to 10986
Data columns (total 2 columns):
movie_name                  10225 non-null object
movie_image                 10225 non-null object
dtypes: object(2)
莉迪亚·范·戴克

正如评论中所讨论的:问题似乎出在数据框的创建或 csv 文件本身中。

我能够使用以下代码创建适当的散点图:


from pathlib import Path

import numpy as np
import pandas as pd
from PIL import Image
import matplotlib.pyplot as plt
from io import StringIO

if __name__ == '__main__':
    images_dir = Path("../data/images")

    infile = StringIO("""movie_name,movie_image
Lion_king,1.jpg
avengers,2.jpg
iron_man,3.jpg
""")

    df_subset_cleaned_poster = pd.read_csv(infile)

    n = len(df_subset_cleaned_poster)
    height, width = np.empty(n), np.empty(n)

    for i, filename in enumerate(df_subset_cleaned_poster.movie_image):
        w, h = Image.open(images_dir / filename).size
        width[i], height[i] = w, h

    plt.scatter(width, height, alpha=0.5)
    plt.xlabel('Width')
    plt.ylabel('Height')
    plt.show()

我建议您使用此代码作为进一步实验的起点。我正在使用enumerate迭代中的所有行df_subset_cleaned_poster.movie_image这本身应该对 IndexErrors 更健壮。

如您所见,我用infile模拟字符串替换了StringIO. 只需将其替换infile = open("your_file.txt")为再次使用真实数据即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从Linux命令行列出文件夹中所有图像的宽度和高度

获取文件夹中所有图像的名称和尺寸

获取文件夹和子文件夹中所有.txt文件的路径

使用imageio.readvol()从文件夹中读取所有图像(jpg)

如何从php中所有文件的文件夹目录中仅获取视频文件?

如何将文件夹中的所有 PNG 转换为 JPG 以制作视频?

调整文件夹中所有图像的大小

复制目录中的所有文件和文件夹,除了 python 中的 .jpg 和 .png 文件

如何打印文件夹中所有文件的名称

在Laravel中,如何获取公用文件夹中所有文件的列表?

获取共享中所有文件夹的ACL

如何遍历所有Assets文件夹和子文件夹并获得该文件夹中所有预制件的列表?

如何将文件夹中所有文件的文件名,大小和上次修改的文件信息获取到gridview中?

如何删除.jpg图像文件中的所有行?

如何将文件夹中的所有JPG文件转换为PDF并将其合并?

重命名文件夹中的所有文件到编号列表1.jpg 2.jpg

在每个子文件夹中批量创建一个文件夹并移动其中的所有 .jpg 文件

如何在Blob存储中获取容器中所有文件夹的列表?

如何将文件夹中的所有图像缩放到相同的宽度?

如何计算文件夹中所有标头和源文件中的所有代码行?* .cpp * .h

javascript获取表中所有图像的自然宽度/高度

Python-获取目录中所有文件和子文件夹的相对路径

循环浏览子文件夹中所有级别的文件(不包括父文件夹),获取它们的部分路径和名称

获取文件夹中所有文件的文件名

在bash中所有子文件夹的所有图像上执行命令

如何从网站URL获取图像并将所有图像存储在PC的文件夹中?

从本地文件夹获取所有图像

如何使用 JGit 库获取我的 git 存储库文件夹中所有文件的 SHA 值列表

获取文件夹中所有文件的绝对路径,不遍历子文件夹