将图片名称批量输入到txt
时间: 2023-10-08 21:03:51 浏览: 46
你可以使用Python中的os模块来遍历文件夹中的所有图片文件,并将图片名称写入到txt文件中:
```python
import os
folder_path = "path/to/folder" # 文件夹路径
txt_file_path = "path/to/txt/file.txt" # txt文件路径
# 打开txt文件,以追加模式写入
with open(txt_file_path, "a") as f:
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
# 获取文件扩展名
extension = os.path.splitext(filename)[1]
# 判断是否为图片文件
if extension in [".jpg", ".jpeg", ".png", ".bmp"]:
# 写入文件名
f.write(filename + "\n")
```
这段代码会将文件夹中所有扩展名为".jpg"、".jpeg"、".png"、".bmp"的图片文件的名称写入到txt文件中,每个文件名占一行。如果txt文件不存在,则会自动创建。
相关问题
文件夹“flower”中有100张花朵图片,如何用opencv批量加载图像?思路之一,先生成一个记录有所有图像名称的txt文件,先读取txt文件,再加载图像数据
在Python中,使用OpenCV(cv2库)批量加载文件夹中的图像可以按照以下步骤操作:
1. 首先,你需要安装`opencv-python-headless`,因为它不需要图形界面,适合处理大量图像数据。
2. 创建一个文本文件(例如,`flowers.txt`),用于存储文件夹中花朵图片的路径。每行放一个路径,例如:
```
flower\image_01.jpg
flower\image_02.jpg
...
flower\image_100.jpg
```
3. 使用Python读取这个文本文件,并遍历每一行路径:
```python
import cv2
with open('flower.txt', 'r') as file:
image_paths = file.readlines()
images = []
for path in image_paths:
# 移除末尾换行符
img_path = path.strip()
try:
# 加载图像
img = cv2.imread(img_path)
if img is not None:
images.append(img)
else:
print(f"无法加载图像: {img_path}")
except Exception as e:
print(f"加载图像出错: {img_path} - {e}")
```
4. 现在,`images`列表里包含了所有的花朵图片数据。你可以对它们进行进一步的操作,如预处理、数据分析等。
用opencv加载原始彩色花花图像(难点在于,如何批量加载所有图像?思路之一,先生成一个记录有所有图像名称的txt文件,先读取txt文件,再加载图像数据)
在OpenCV中批量加载彩色图像,尤其是通过文本文件列表的方式,可以分为几个步骤:
1. **创建文本文件**:首先,你需要创建一个包含所有图像文件路径的文本文件。例如,每个行代表一个图像文件名,如 `image1.jpg`, `image2.png` 等。
2. **读取文本文件**:使用Python的内置模块 `os` 或第三方库 `pandas` 可以方便地读取这个.txt文件,获取到所有的图片路径列表。
```python
import os
# 假设text_file.txt位于当前目录下
with open('text_file.txt', 'r') as file:
image_names = [line.strip() for line in file]
```
3. **加载图像**:然后遍历这个列表,对每一个文件名调用OpenCV的 `imread()` 函数来加载图像数据。记得将 `cv2.imread()` 放在一个循环里,因为每次迭代都会处理一个单独的文件。
```python
import cv2
images = []
for name in image_names:
img = cv2.imread(name)
if img is not None:
images.append(img)
else:
print(f"Failed to load {name}, check the path.")
```
4. **处理结果**:`images` 列表现在包含了所有成功加载的图像对象。你可以进一步处理它们,比如存储在数组、数据库或进行后续的图像操作。
阅读全文
相关推荐
















