MATLAB:图像训练集标签 颜色标注

仅做记录 ,代码质量勿喷。

%% 清空
close all;
clear all;
clc;

%% 标注颜色:Red or Green or Blue
labelColor='R';
%% 原始图片
labelFolder = uigetdir('F:/','请选择标注文件夹');

%% 设置保存路径
mkdir([labelFolder '\crack']);             %%裂缝文件夹
crackFolder = [labelFolder '\crack'];

%% 获取文件
labelFile = dir(fullfile(labelFolder,'*.JPG'));%%获取标注文件
labelCount = length(labelFile);                %%标注文件数量

%% 遍历 相减 二值化
for i = 1:labelCount
    %% 原始图片
    labelName = labelFile(i).name;
    imageLabel = imread([labelFolder,'\',labelName]);
    %% 新建二值图像
    [row,col]=size(imageLabel);
    imgBinary=zeros(row,col/3);
    %% 读取像素 赋新值
    xjR=imageLabel(:,:,1);
    xjG=imageLabel(:,:,2);
    xjB=imageLabel(:,:,3);
    for r=1:row
        for c=1:col/3
            red=xjR(r,c);
            green=xjG(r,c);
            blue=xjB(r,c);
            
            if labelColor=='R'
                if (red>200)&&(green<20)&&(blue<20)
                    imgBinary(r,c)=255;
                else
                    imgBinary(r,c)=0;
                end
                
            elseif labelColor=='G'
                if (red<20)&&(green>200)&&(blue<20)
                    imgBinary(r,c)=255;
                else
                    imgBinary(r,c)=0;
                end
                
            elseif labelColor=='B'
                if (red<20)&&(green<20)&&(blue>200)
                    imgBinary(r,c)=255;
                else
                    imgBinary(r,c)=0;
                end
            end
            
        end
    end
    %% 闭运算
    se=strel('disk',3');%结构元素
    imgClose=imclose(imgBinary,se);%直接闭运算
    %% 保存
    imwrite(imgClose,[crackFolder '\' [labelName(1:end-4) '.png']]);
end
 
 msgbox('!KO');

红色重,绿色轻

%% 清空
close all;
clear all;
clc;

%% 标注颜色:红色重 绿色轻
%%原始图片
labelFolder = uigetdir('F:/','请选择标注文件夹');

%% 设置保存路径
mkdir([labelFolder '\crack']);             %%裂缝文件夹
crackFolder = [labelFolder '\crack'];

%% 获取文件
labelFile = dir(fullfile(labelFolder,'*.JPG'));%%获取标注文件
labelCount = length(labelFile);                %%标注文件数量

%% 遍历 相减 二值化
for i = 1:labelCount
    %% 原始图片
    labelName = labelFile(i).name;
    imageLabel = imread([labelFolder,'\',labelName]);
    %% 新建二值图像
    [row,col]=size(imageLabel);
    imgNew=zeros(row,col/3);
    %% 读取像素 赋新值
    for r=1:row
        for c=1:col/3
            red=imageLabel(r,c,1);
            green=imageLabel(r,c,2);
            blue=imageLabel(r,c,3);
            
                if (red>200)&&(green<20)&&(blue<20)
                    imgNew(r,c,1)=255;
                    imgNew(r,c,2)=0;
                    imgNew(r,c,3)=0;
                elseif (red<20)&&(green>200)&&(blue<20)
                    imgNew(r,c,1)=0;
                    imgNew(r,c,2)=255;
                    imgNew(r,c,3)=0;
                else
                    imgNew(r,c,1)=0;
                    imgNew(r,c,2)=0;
                    imgNew(r,c,3)=0;
                end
            
        end
    end
%     %% 闭运算
%     se=strel('disk',3');%结构元素
%     imgClose=imclose(imgNew,se);%直接闭运算
    %% 保存
    imwrite(imgNew,[crackFolder '\' [labelName(1:end-4) '.png']]);
end
 
 msgbox('!KO');

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

累了就要打游戏

把我养胖,搞代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值