图像预处理——将img和mask根据自己的要求同时裁剪——matlab代码

目的

超声的原始图像不仅包含了用于诊断的信息,还掺杂了诸如机器型号、日期等不相关的信息。为了确保后续神经网络分割的准确性和有效性,需要对这些无关信息进行裁剪,仅保留与分割任务直接相关的img和mask部分。这样既能优化数据处理流程,又能提升后续分析的精准度。

如下:
在这里插入图片描述
我的mask图像是[0,1],因此在得到新的mask图之后,需要再次进行[0, 1]->[0,255]的转化,可以根据个人需要适当调整流程。

思路

首先,读取img和mask图,使用matlab可视化img图;然后,根据需要使用矩形工具勾画出img需要保留的区域,并且保留矩形的四个点位;接着,matlab自动根据保留的点位对mask图进行裁剪;最后,将新勾画出的img图和mask图保存到新的文件夹中。

代码

文件路径
在这里插入图片描述
代码

% 设定原始文件夹和新文件夹路径
imgsFolder = 'imgs';
groundtruthFolder = '01gt';
newImgsFolder = 'new_images';
newGroundtruthFolder = 'new_gt01';

% 创建新文件夹
mkdir(newImgsFolder);
mkdir(newGroundtruthFolder);

% 获取图像文件列表
imgsFiles = dir(fullfile(imgsFolder, '*.png'));
groundtruthFiles = dir(fullfile(groundtruthFolder, '*.png'));

% 逐个处理图像 中途断了可以在这里手动设置起始点
for i = 1:numel(imgsFiles)  
    % 读取图像
    img = imread(fullfile(imgsFolder, imgsFiles(i).name));
    groundtruth = imread(fullfile(groundtruthFolder, groundtruthFiles(i).name));
    
    % 显示图像并提供互动工具
    fig = figure;
    imshow(img);
    title('Use the ROI tool to draw a region of interest');
    h = drawrectangle; % 使用矩形工具勾画保留的区域
    mask = createMask(h);
    
    % 获取勾画区域的位置
    position = round(h.Position);
    x1 = position(1);
    y1 = position(2);
    x2 = x1 + position(3) - 1;
    y2 = y1 + position(4) - 1;
    
    % 将勾画区域裁剪并保存到新文件夹
    imgNew = img(y1:y2, x1:x2, :);
    groundtruthNew = groundtruth(y1:y2, x1:x2, :);
    imwrite(imgNew, fullfile(newImgsFolder, imgsFiles(i).name));
    imwrite(groundtruthNew, fullfile(newGroundtruthFolder, groundtruthFiles(i).name));
    
    % 关闭当前图像
    close(fig);
end

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Philo`

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值