图像分类数据的文件路径预处理知识点
image_paths = sorted(list(Path("images").glob("*/*.jpg")))
在Python中,这段代码的作用是按照字典序对位于 "images" 目录及其所有子目录中的所有 .jpg 图像文件进行排序并存储它们的路径。
具体步骤如下:
首先,创建一个 Path("images") 对象,它代表了名为 "images" 的目录。
使用 glob("*/*.jpg") 方法在这个 "images" 目录及其所有子目录下查找匹配模式 "*/*.jpg" 的所有文件。这里通配符 * 表示任意数量的任意字符,所以 "*/*.jpg" 匹配所有子目录下的 .jpg 文件。(必须在images目录下在新建文件夹,把图片放在新建的文件夹下)
list() 函数将 glob() 返回的迭代器转换为一个列表,这样我们就可以对这些路径进行操作。
sorted() 函数对这个包含所有 .jpg 图像文件路径的列表进行排序。
最终,image_paths 变量将保存一个按名称排序后的 Path 对象列表,每个对象都代表一个 ".jpg" 图像文件的完整路径。
image_paths = sorted(list(Path("/home/hisense/haiguan/malinjie/unilm/layoutlmv3/images").glob("*/*.jpg")))
print(image_paths)
#[PosixPath('/home/hisense/haiguan/malinjie/unilm/layoutlmv3/images/1/PHOTO_20231213_111022954.jpg'),PosixPath('/home/hisense/haiguan/malinjie/unilm/layoutlmv3/images/2/PHOTO_20231213_111023014.jpg')]
json_path = image_paths[0].with_suffix(".json")
print(json_path)
#/home/hisense/haiguan/malinjie/unilm/layoutlmv3/images/cash_flow/PHOTO_20231213_111023014.json
image = Image.open(image_paths[0]).convert("RGB")
width, height = image.size
print(width, height)
# 1280 1706
image_path.parent.name再python中代表什么意思
在Python中,如果你有一个Path对象表示一个图像文件的完整路径,并且你调用了它的.parent属性,接着又调用了.name属性,那么这意味着:
image_path = Path("path/to/some/image.jpg")
parent_dir_name = image_path.parent.name
这段代码会首先获取image.jpg所在的父目录的路径,然后从这个父目录路径中提取出父目录的名字。
例如,如果image_path是/home/user/pictures/image.jpg,则:?
image_path.parent 将返回 /home/user/pictures。
image_path.parent.name 将返回 pictures。
所以,image_path.parent.name 表示的是图像文件所在目录的名字。
?
image_paths = sorted(list(Path("images").glob("*/*.jpg")))
for image_path in image_paths:
? ? result = ocr.ocr(str(image_path)) # 必须得加str()
如果不添加str(),image_path =?images/cash_flow/1.jpg,不能表示路径
但是,请注意,如果你之前定义的 image_path 是一个 Path 对象,那么你应该保持其类型不变以便进行后续操作,例如:
from pathlib import Path
image_path = Path('images/cash_flow/1.jpg') ?# 这里是Path对象
print(str(image_path)) ?# 如果你需要将其转换成字符串形式,可以使用str()函数这样,str(image_path) 就会输出带有引号的路径字符串:'images/cash_flow/1.jpg'。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!