最近要做深度学习的训练集,每张原图对应一张二值图
%% 清空
close all;clear;clc;
%% 选择文件路径
folder = uigetdir('C:\Users\xinjiang\Desktop','请选择文件夹');
labelFolder = [folder '\label']; %%标注文件夹
imageFolder = [folder '\image']; %%原图文件夹
%% 设置保存路径
% mkdir([folder '\subtract']); %%相减文件夹
% subtractFolder = [folder '\subtract'];
mkdir([folder '\crack']); %%裂缝文件夹
crackFolder = [folder '\crack'];
%% 获取文件
labelFile = dir(fullfile(labelFolder,'*.png'));%%获取标注文件
labelCount = length(labelFile); %%标注文件数量
imageFile=dir(fullfile(imageFolder,'*.png'));%%获取原图
imageCount=length(imageFile); %%原图数量
%% 判断标注与原图数量是否相等
if(labelCount ~= imageCount)
msgbox('原图与标注的数量不等!!!','警告','warn');
return;
end
%% 遍历 相减 二值化
for i = 1:labelCount
%% 标注图像
labelName = labelFile(i).name;
labelImg = imread([labelFolder,'\',labelName]);
%% 原图
imageName = imageFile(i).name;
imageImg = imread([imageFolder,'\',imageName]);
%% 相减
%%像素差值d
%%imabsdiff的结果是 |d|
%%其它方式 若d<0,则为0
% imgAbsdiff = imabsdiff(labelImg,imageImg);%%第一种方式
% imgSubtract = labelImg - imageImg; %%第二种方式
imgSubtract = imsubtract(labelImg,imageImg);%%第三种方式
imwrite(imgAbsdiff,[subtractFolder '\' imageName] );
%% 二值化
crack = im2bw(imgSubtract,0.0001); %%二值化
imwrite(crack,[crackFolder '\' imageName] );%%保存
end
msgbox('!KO');