将Crack500数据集中的mask.png格式转化为YOLOv8.txt格式工具

Crack500数据集格式默认是.png的mask掩码格式:
crack500默认数据集样式
通过下面代码即可实现转化为YOLO格式的txt:

import copy
import cv2
import os
import shutil
import numpy as np


path = "你的mask路径  /Dataset/mask"
files = os.listdir(path)
for file in files:
    name = file.split('.')[0]
    file_path = os.path.join(path,name+'.png')
    img = cv2.imread(file_path)
    # img = cv2.imread(path)
    H,W=img.shape[0:2]
    print(H,W)

    #img1 = cv2.imread("F:/Deep_Learning/Model/YOLOv8_Seg/Dataset/images/20160222_080933_361_1.jpg")

    gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    ret,bin_img = cv2.threshold(gray_img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
    cnt,hit = cv2.findContours(bin_img,cv2.RETR_TREE,cv2.CHAIN_APPROX_TC89_KCOS)

    #cv2.drawContours(img1,cnt,-1,(0,255,0),5)

    cnt = list(cnt)
    f = open("标签保存路径 Dataset/labels/{}.txt".format(file.split(".")[0]), "a+")
    for j in cnt:
        result = []
        pre = j[0]
        for i in j:
            if abs(i[0][0] - pre[0][0]) > 1 or abs(i[0][1] - pre[0][1]) > 1:# 在这里可以调整间隔点,我设置为1
                pre = i
                temp = list(i[0])
                temp[0] /= W
                temp[1] /= H
                result.append(temp)

                #cv2.circle(img1,i[0],1,(0,0,255),2)

        print(result)
        print(len(result))

        # if len(result) != 0:

        if len(result) != 0:
            f.write("0 ")
            for line in result:
                line = str(line)[1:-2].replace(",","")
                # print(line)
                f.write(line+" ")
            f.write("\n")
    f.close()

    #cv2.imshow("test",img1)
    # while True:
    #     key = cv2.waitKey(1)  # 等待 1 毫秒,返回键盘按键的 ASCII 值
    #     if key == ord('q'):  # 如果按下 'q' 键,退出循环
    #         break
    #
    # cv2.destroyAllWindows()  # 关闭窗口

生成的txt格式:
在这里插入图片描述

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Crack500公共数据集是一个专门用于检测和识别混凝土裂缝的数据集,包含了500张混凝土裂缝图像。这些图像来自不同的混凝土结构、不同的角度和光照条件,图像质量和噪声水平也各不相同。这种数据集对于混凝土结构的安全性和有效性至关重要。 Crack500公共数据集的使用范围包括混凝土结构检测、混凝土损伤分析和维护等方面。通过使用此数据集,可以开发出更加高精度、准确的混凝土裂缝检测算法和模型。通过深度学习等机器学习技术,可以对这些图像进行分析和处理,从而得到对混凝土结构的更加深入的理解和识别能力。 可以利用Crack500公共数据集在不同领域进行应用,比如建筑、交通和石油等领域。这个数据集是一个宝贵的资源,可以在科学研究、产品设计和工程应用等方面发挥重要作用。总之,Crack500公共数据集是混凝土裂缝检测领域的重要数据集之一,可以为混凝土结构的安全性和有效性提供有力的支持。 ### 回答2: Crack500是一个广泛使用的公共数据集,用于评估计算机视觉算法的性能。这个数据集包含了500张裂缝图像,这些图像分别来自于不同的来源,并且包含不同类型的裂缝。 Crack500数据集的优点是,它是适用于不同类型和大小的裂缝的,从微小的细长裂缝到大的深度贯通裂缝,它提供了丰富的材料供不同类型的研究使用。此外,Crack500数据集的图像经过了标准的注释和分类,这样就使得算法的性能评估更为准确。 在使用Crack500数据集进行研究时,我们可以使用不同的算法来实现裂缝检测和分类。例如,我们可以使用深度学习算法来对裂缝进行自动检测和分类,或者可以使用传统的图像处理算法来实现裂缝的检测和分类。在这个过程,我们需要准备合适的训练集,对算法进行训练并测试其性能。 Crack500数据集的应用场景非常广泛,例如,它可以被用来评估建筑材料的强度和耐久性,也可以用于评估交通工具和水坝等重要设施的安全性能。此外,它也可以被用作为科学家们进行地质勘探和热点区域的评估提供重要参考。 总之,Crack500数据集是一个非常有用的公共数据集,它为裂缝检测和分类提供了重要的材料,为科学研究和工程设计提供了重要的帮助。未来,我们可以期待使用更先进的技术来对Crack500进行更为深入的研究,以便更好地了解裂缝的特性和性能。 ### 回答3: Crack500公共数据集是一个面向人工智能和机器学习领域的数据集,其主要目的是为了帮助研究者更好地进行裂缝检测和识别的研究工作。这个数据集包含了500张石材表面的图像,这些图像都含有不同大小、不同形状和不同角度的裂缝。 该数据集的提出主要是为了解决传统的裂缝检测方法存在的一些问题,例如难以适应不同类型的石材表面、无法进行有效的裂缝分类和缺乏足够的数据等。而Crack500数据集则通过多种技术手段获得了大量的裂缝图像数据,同时通过它提供的标注信息和评估指标,进一步激发了一系列相关研究的兴趣。 使用Crack500数据集进行研究的一个明显优势是,它可以显著提高研究的可靠性和有效性,同时可以使结果更具有普适性。这是由于该数据集包含了多种类型的石材表面图像,可以用于不同类型的裂缝检测算法和相关应用的训练和测试。另外,该数据集的标注信息也让研究者更加容易地进行用户需求分析和算法优化工作。 总之,Crack500公共数据集是一个非常有意义的数据集,它为机器学习和人工智能领域的研究和应用提供了重要支持,也推动了裂缝检测和识别技术的不断发展和进步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值