.mat文件转换为png

将CFD(CrackForest Datasets)数据集的GroundTruth中的.mat文件转换为便于使用的maskpng

dotmat2png.py

import scipy.io
import numpy as np
import cv2
import os


def save_mask(mat_file, save_path):
    mat = scipy.io.loadmat(mat_file)
    np_seg = mat['groundTruth'][0][0][0]
    (y, x) = np.where(np_seg == 2)
    np_seg[y, x] = 255
    (y, x) = np.where(np_seg == 1)
    np_seg[y, x] = 0

    cv2.imwrite(save_path, np_seg)
    print('save mask:', save_path)


def main():
    mat_dir = './groundTruth/'   # mat文件的路径
    save_dir = './mask/'         # 保存为maskpng的路径 自己创建
    mat_files = os.listdir(mat_dir)
    for mat_file in mat_files:
        save_mask(mat_dir + mat_file, save_dir + mat_file.split('.')[0] + '.png')

main()

原始.mat文件,如下:

image-20240427154647879

转换后的maskpng图片,如下:

image-20240427154725669

对应原始图片,如下:

image-20240427154801295

修改后的CFD数据集链接:CFD数据集

posted @ 2024-05-01 20:29  Oraer  阅读(39)  评论(0编辑  收藏  举报