python 统计文件夹中图片尺寸

python Code

python 复制代码
import os
import matplotlib.pyplot as plt
import numpy as np
import copy
import shutil
import cv2
import matplotlib.pyplot as plt
def cv_imread(file_path):
    #imdedcode读取的是RGB图像
    cv_img = cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1)
    return cv_img


def statistic_w_h(images_names_path):
    heights_ = []
    widths_ = []
    for img_name in images_names_path:
        # print("images_names_path", images_names_path)
        if img_name[-4:] != "json":
           # print("img_name", img_name)
            img = cv_imread(img_name)
            # cv2.imshow("img",img)
            # cv2.waitKey(0)
            # print(img.shape)
            shape0 = img.shape[0]
            shape1 = img.shape[1]
            img_height = shape0
            img_width = shape1
            if img_width > img_height:
                img_height = shape1
                img_width = shape0
            heights_.append(img_height)
            widths_.append(img_width)
    return heights_, widths_


def get_img_name(src_path_root_):
    image_paths = os.listdir(src_path_root_)
    print("-------------image_paths---------------", src_path_root_)
    images_names_all = []
    for image_path in image_paths:
        images_names = []
        abs_image_path = src_path_root_+'/'+image_path
        # print("abs_image_path", abs_image_path)
        images_name_ = os.listdir(abs_image_path)

        print("abs_image_path:", abs_image_path)
        print("Number", len(images_name_))
        # print("images_name_", images_name_)
        for img_name in images_name_:
            img_name = abs_image_path+'/'+img_name
            # print(img_name)
            images_names.append(img_name)
        images_names_all += images_names
    return images_names_all


def get_image_name_list(paths_):
    names = []
    print("get_image_name_list:", paths_)
    for path in paths_:
        names += get_img_name(path)
    return names


if __name__ == "__main__":
    path_root_root = "E:/L208_part/"
    component_type = 'R'
    statistic_path_list = []
    root_paths = os.listdir(path_root_root)
    print(root_paths)
    for root_path in root_paths:
        abs_statistic_path = path_root_root+root_path+'/'+component_type
        statistic_path_list.append(abs_statistic_path)
    print(statistic_path_list)
    images=get_image_name_list(statistic_path_list)
    print("len of image:", len(images))
    heights, widths = statistic_w_h(images)
    plt.hist(heights, bins=10, color='skyblue', alpha=0.5,label='heights')
    plt.hist(widths,  bins=10, color='green', alpha=0.5,label='widths')
    plt.title('strip class components -R ')
    plt.xlabel('Pixels')
    plt.ylabel('Frequency')
    plt.legend()
    plt.show()

2 目录结构

相关推荐
databook9 小时前
像搭积木一样思考:数据科学中的“自下而上”之道
python·数据挖掘·数据分析
luoluoal9 小时前
基于python的医疗问句中的实体识别算法的研究(源码+文档)
python·mysql·django·毕业设计·源码
硅谷秋水9 小时前
REALM:用于机器人操作泛化能力的真实-仿真验证基准测试
人工智能·机器学习·计算机视觉·语言模型·机器人
啊阿狸不会拉杆9 小时前
《机器学习导论》第 9 章-决策树
人工智能·python·算法·决策树·机器学习·数据挖掘·剪枝
喵手9 小时前
Python爬虫实战:城市停车收费标准自动化采集系统 - 让停车费透明化的技术实践(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·城市停车收费标准·采集城市停车收费数据·采集停车数据csv文件导出
无水先生9 小时前
python函数的参数管理(01)*args和**kwargs
开发语言·python
py小王子9 小时前
dy评论数据爬取实战:基于DrissionPage的自动化采集方案
大数据·开发语言·python·毕业设计
Pyeako9 小时前
opencv计算机视觉--LBPH&EigenFace&FisherFace人脸识别
人工智能·python·opencv·计算机视觉·lbph·eigenface·fisherface
工程师老罗9 小时前
举例说明YOLOv1 输出坐标到原图像素的映射关系
人工智能·yolo·计算机视觉
小陶的学习笔记9 小时前
python~基础
开发语言·python·学习