IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python读取多个子文件夹里的图片并添加标签 -> 正文阅读

[人工智能]python读取多个子文件夹里的图片并添加标签

  • Mac 上,首先读取子目录会有隐藏的.DS_store文件,在终端运行删除这些。
    find ./ -name ".DS_Store" -depth -exec rm {} \;
  • 查找了永久不再生成这个文件的指令,重启后好像并没有用。。所以每次创文件夹还得删一次。
    原文

代码

#     find ./ -name ".DS_Store" -depth -exec rm {} \;
import numpy as np
import cv2
import os
from tqdm import tqdm
label=np.zeros( (6) )
data_=np.zeros((6,512,512))
array_img = []
def image(path):
     print("-" * 50)
     print("训练集读取")
     '''读取路径下所有子文件夹中的图片并存入list'''
     train = []
     dir_counter = 0
     x=0
     i=0
     h=-1

     for child_dir in os.listdir(path):
         child_path = os.path.join(path, child_dir)
         h += 1
         for dir_image in tqdm(os.listdir(child_path)):
             img = cv2.imread(child_path + "//" + dir_image, cv2.IMREAD_COLOR)   # 斜杆\改成/
             #cv2.namedWindow("Image")
             # cv2.imshow("Image", img)
             img=cv2.resize(img,(512,512))
             img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#灰度处理
             data=np.zeros((512,512))
             data[0:img.shape[0],0:img.shape[1]] = img
             data_[i, :, :] = data[0:512, 0:512]
             label[x] = h

             i += 1
             x += 1

         dir_counter += 1
         train.append(label)
         train.append(data_)

     return train
image('/Users/sinkarsenic/Downloads/mask/val/mask/test')
print('data_')
print(data_)
print('label')
print(label)

删完隐藏文件后还是报错,改了参数啥的 也没变好,debug发现是图片没读出来,刚好看到这篇文章给了我启发。
关于 NoneType : object has no attribute shape

把斜杆\改成/就可以了
但是这一段只是打印出标签并没有创建…
所以
mac使用python脚本快捷键创建txt文本
学会了 mac 的自动化操作
发现这段代码可以加点自己写的

def createtext():
  path_name = os.getcwd()
  #path_name = raw_input()
  path_name += '/'

  text_name = '新文本_' # + str(random.randint(0, 65536))
  completeName = path_name + text_name + ".txt"

  file1 = open(completeName , "w")

  init_text = "Hello world!"

  file1.write(init_text)

  file1.close()

file_name("/Users/sinkarsenic/Downloads/mask/val/mask/test/nomask")

批量生成YOLO 格式标签

创建txt 的时候要获取图片名称,把.jpg去掉发现还有个空的数据,不去掉发现又是那个 dsstore!
在这里插入图片描述
于是加了个 if 判断处理后的文件长度,排除掉空的再生成 txt。

def file_name(file_dir):
  for root, dirs, files in os.walk(file_dir):
    #print(root) #当前目录路径
    #print(dirs) #当前路径下所有子目录
    for file in files:
         file = file.split('.')[0]
         if len(file)!=0:
             path_name = root
             path_name += '/'
             text_name = file
             completeName = path_name + text_name + ".txt"
             file1 = open(completeName, "w")
             init_text = "0 0.500952 0.501429 0.998095 0.997143"# 整张图片
             file1.write(init_text)
             file1.close()
             print(len(file)) #当前路径下所有非目录子文件

批量给图片改名字加前缀

  • 源代码是加前缀就行了,但我发现我的数据集原名字有点长,干脆都改成数字。
import os
import sys

path = "/Users/sinkarsenic/Downloads/mask/val/mask/test/nomask"
postfix = ".jpg"  #只改后缀为这个的
mark = 'm_'  #'nm_'  # 前缀名


def add_prefix_files():
    oldnames = os.listdir(path)
    index = 0
    for oldname in oldnames:
        if oldname!=sys.argv[0]:
            if oldname.endswith(postfix):
                os.rename(os.path.join(path,oldname),os.path.join(path,mark + str(index) + '.jpg'))
                print(oldname,"has been renamed successfully! New name is: ",mark+str(index) + '.jpg')
                index=index+1
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:50:16  更:2022-02-06 13:52:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 22:04:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码