python将图片名写入txt后最新命名并增强图片
Python 图片 最新 写入 命名 增强 txt
2023-09-27 14:25:48 时间
1 将图片的名字后重新命名
因为图片名本身有需要的信息
# -*- coding:utf-8 -*-
import sys
# sys.path.append('E:\\Anaconda\\libs')
import os #os:操作系统相关的信息模块
import shutil
from os.path import join
import cv2
import random #导入随机函数
# 存放原始图片地址
data_base_dir = 'ocr/test_images/ROIS/rcnnROI'
file_dir = r'D:\BUFFER\Pycharm\OpencvLearn\ocr\test_images\ROIs\rcnnROI'
dest_dir = r"D:\BUFFER\Pycharm\OpencvLearn\ocr\test_images\ROIs\rcnnROI\AI"
file_list = [] # 建立列表,用于保存图片信息
# 读取图片文件,并将图片地址、图片名和标签写到txt文件中
write_file_name = 'ocr/test_images/ROIS/rcnnROI/numbers.txt'
write_file = open(write_file_name, "w") # 以只写方式打开write_file_name文件
count = 0
for file in os.listdir(data_base_dir): # file为current_dir当前目录下图片名
if file.endswith(".jpg"): # 如果file以jpg结尾
for _ in range(2):
pass
imageName = str(count) + '.jpg'
write_name = './train_data/data/'+ imageName + '\t' + file[:-4] # 图片路径 + 图片名 + 标签
det = join(dest_dir, imageName)
scr_dir = join(file_dir, file)
shutil.copyfile(scr_dir ,det)
count += 1
file_list.append(write_name) # 将write_name添加到file_list列表最后
sorted(file_list) # 将列表中所有元素随机排列
number_of_lines = len(file_list) # 列表中元素个数
# 将图片信息写入txt文件中,逐行写入
for current_line in range(number_of_lines):
write_file.write(file_list[current_line] + '\n')
#关闭文件
write_file.close()
2 可以用这些数据增强生成更多的样本,并保留图片信息
# -*- coding:utf-8 -*-
import sys
# sys.path.append('E:\\Anaconda\\libs')
import os #os:操作系统相关的信息模块
import shutil
from os.path import join
import cv2
import numpy as np
import random #导入随机函数
# 存放原始图片地址
data_base_dir = 'ocr/test_images/ROIS/rcnnROI'
file_dir = r'D:\BUFFER\Pycharm\OpencvLearn\ocr\test_images\ROIs\rcnnROI'
dest_dir = r"D:\BUFFER\Pycharm\OpencvLearn\ocr\test_images\ROIs\rcnnROI\AI"
file_list = [] # 建立列表,用于保存图片信息
# 读取图片文件,并将图片地址、图片名和标签写到txt文件中
write_file_name = 'ocr/test_images/ROIS/rcnnROI/numbers.txt'
write_file = open(write_file_name, "w") # 以只写方式打开write_file_name文件
count = 0
for file in os.listdir(data_base_dir): # file为current_dir当前目录下图片名
if file.endswith(".jpg"): # 如果file以jpg结尾
for item in range(4):
imageName = str(count) + '.jpg'
write_name = './train_data/data/' + imageName + '\t' + file[:-4] # 图片路径 + 图片名 + 标签
det = join(dest_dir, imageName)
if item == 0:
scr_dir = join(file_dir, file)
shutil.copyfile(scr_dir ,det)
# 增强图片
if item == 1:
img = cv2.imread(scr_dir,cv2.IMREAD_GRAYSCALE)
kernel = np.ones((5,5), np.uint8)
open_img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
left_thred = 240
thresh1 = cv2.threshold(open_img, left_thred, 255, cv2.THRESH_BINARY)[1]
cv2.imwrite(det, thresh1)
if item == 2:
img = cv2.imread(scr_dir, cv2.IMREAD_GRAYSCALE)
kernel = np.ones((5, 5), np.uint8)
open_img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
blur = cv2.blur(open_img, (5,5))
cv2.imwrite(det, blur)
if item == 3:
img = cv2.imread(scr_dir, cv2.IMREAD_GRAYSCALE)
kernel = np.ones((5, 5), np.uint8)
open_img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
thresh1 = cv2.threshold(open_img, left_thred, 255, cv2.THRESH_BINARY)[1]
blur = cv2.blur(thresh1, (5, 5))
cv2.imwrite(det, blur)
count += 1
file_list.append(write_name) # 将write_name添加到file_list列表最后
sorted(file_list) # 将列表中所有元素随机排列
number_of_lines = len(file_list) # 列表中元素个数
# 将图片信息写入txt文件中,逐行写入
for current_line in range(number_of_lines):
write_file.write(file_list[current_line] + '\n')
#关闭文件
write_file.close()
相关文章
- 排序算法Python(冒泡、选择、快速、插入、希尔、归并排序)
- 显示一张图片(opencv-python入门)
- 文本分析之制作网络关系图——Python
- Python爬取百度贴吧图片
- 使用python删除N天前的文件(2)
- 8月8日科技资讯|电信联通开展直联网间 1530G 扩容;谷歌更新图片界面;Python 3.8.0b3 发布
- 面向对象(实际就像python跳用自己写的库那样)
- 【Python】条件表达式(以判断两数大小为例)
- 【Python】常见的 数据类型:布尔类型
- python代码风格-PEP8
- python WEB UI自动化在日期框中动态输入当前日期
- 随想录(用python开发网站)
- Python pandas.DataFrame.memory_usage函数方法的使用
- 使用Python-OpenCV向图片添加噪声(高斯噪声、椒盐噪声)
- python Pillow.Image图片裁剪,缩放
- python--pyqtgraph学习目录
- python opencv3 静态图片检测人脸
- python cv2读取图片/图片转码/切图/图片格式转换/替换图片内容
- python heic后缀图片文件转换成jpg格式