matlab读取文件夹中的一张图,采用selectRoiMatrix函数获取24个200x200的矩形,保存每个矩形的中心点坐标
时间: 2024-09-23 16:14:26 浏览: 46
在MATLAB中,你可以按照以下步骤读取文件夹中的图片并使用`imread`函数加载图像,然后利用`selectRoi`函数选择矩形区域,并提取每个区域的中心点坐标:
1. 首先,你需要导入所需的库,如果尚未导入,可以使用以下命令:
```matlab
% 导入image processing toolbox
if ~isToolboxInstalled('Image Processing Toolbox')
error('需要安装Image Processing Toolbox才能继续操作');
end
```
2. 使用`dir`函数列出指定文件夹下的所有图片文件,假设文件夹名为`folder_path`:
```matlab
folder_path = 'your_folder_path'; % 替换为实际文件夹路径
file_list = dir(fullfile(folder_path, '*.jpg')); % 改成你的图片文件扩展名
```
3. 对于每一个图片文件,依次读取并选取矩形区域:
```matlab
for i = 1:length(file_list)
% 读取图片
img = imread(fullfile(folder_path, file_list(i).name));
% 创建选区工具
roi = selectRoi('Image', img, 'Show', false);
% 检查是否选择了至少一个区域
if ~isempty(roi)
% 提取ROI的中心点坐标(左上角+半宽高)
center_point{i} = [roi(1) + roi(3)/2, roi(2) + roi(4)/2];
% 将每个ROI保存为新的图片,这里仅作为示例,实际可以根据需求调整
cropped_img{i} = imcrop(img, roi);
% 保存图片或其他处理...
else
disp(sprintf('File %s not selected any ROI.', file_list(i).name));
end
end
```
在这个过程中,`center_point`变量会存储每个选择的矩形区域的中心点坐标,而`cropped_img`将包含对应的裁剪图像。
阅读全文