1.目的
医学图像处理中,需要将医学图像中非病理图像的平台操作页面截掉,只保留病理图片。
2.多文件夹代码
Matlab文件
clear; % 清除Workspace中的所有变量(右侧工作区)
clc; % Command Window中的所有命令(命令行窗口)
close all;
% 使用dir打开当前文件夹下的文件,将其文件作为列表传入folder_list中
folder_list = dir("甲状腺恶性结节");
folder_len = length(folder_list);
for i = 3:folder_len %matlab索引是从1开始的,使用dir打开文件列表,前面会出现.和..连个空文件夹,所以都是从3开始遍历文件列表
file_list = dir(fullfile("甲状腺恶性结节", folder_list(i).name)); % fullfile构成地址字符串
file_len = length(file_list); % 获取该文件夹下的图片个数
% display(folder_list(i).name) % 打印文件夹名称
for j = 3:file_len % 这里也是dir打开文件会有两个.和..两个空文件
display(file_list(j).name);
I = imread(fullfile("甲状腺恶性结节", folder_list(i).name, file_list(j).name)); % imread根据文件名filename读取灰度获彩色图像
[A, rect] = imcrop(I); % imcrop是一个函数,在MATLAB中,该函数用于返回图像的一个裁剪区域
%rect返回的是图片剪裁的位置,A为剪裁后的图像
%imshow(A)
A_gray = rgb2gray(A); % 将A图像转化为灰度图
if exist(fullfile("save_images",folder_list(i).name), "dir") % 检查文件地址是否存在,存在就pass,否则就创建save_images/floder_list文件夹
display("Pass")
else
mkdir(fullfile("save_images",folder_list(i).name));
end
imwrite(A_gray, fullfile("save_images",folder_list(i).name, file_list(j).name)) % imwrite(A,filename) 将图像数据 A 写入 filename 指定的文件,并从扩展名推断出文件格式
end
end
3.单文件夹代码
Mtalab文件
clear;
clc;
close all;
file_list = dir("甲状腺恶性 (4)");
file_len = length(file_list);
for i = 3:file_len
display(file_list(i).name);
I = imread(fullfile("甲状腺恶性 (4)",file_list(i).name));
A = imcrop(I);
A_gray = rgb2gray(A);
if exist("save_imagesXX", "dir") % 检查文件地址是否存在,存在就pass,否则就创建save_images/floder_list文件夹
display("Pass");
else
mkdir("save_imagesXX");
end
imwrite(A_gray, fullfile("save_imagesXX", file_list(i).name))
end
matlab索引是从1开始的,使用dir打开文件列表,前面会出现.和…连个空文件夹,所以都是从3开始遍历文
imcrop是一个函数,在MATLAB中,该函数用于返回图像的一个裁剪区域
imshow(A) 展示图像
rgb2gray(A) 将图像转化为灰度图
% imwrite(A,filename) 将图像数据 A 写入 filename 指定的文件,并从扩展名推断出文件格式
操作:
使用图像出来后,用鼠标框住,双击保存即可
4.效果图
前:
后: