要用 matlab 读之前处理的 COCO 的 ID map[1],将 sample ID 映射去 image name,用来读图片。ID map 文件每一行的形如:
0 9 000000000009.jpg
空格间开,第一列是 sample ID,第二列是原本的 image ID,即第三列 image name 中的 ID。
用 textscan[2] 函数,其中格式控制符见 [3]。
Code
id_map_file = fullfile("data/COCO", "id-map.COCO.txt");
f = fopen(id_map_file, "r");
% <sample ID> <image ID> <image name>
id_map = textscan(f, "%d %d %s");
fclose(f);
% 读出的 cell 中对应三列
fprintf("cell shape:"), disp(size(id_map)); % (1, 3)
sid = id_map{1};
image_id = id_map{2};
image_name = id_map{3};
fprintf("id:"), disp(size(sid)); % (123287, 1)
fprintf("image id:"), disp(size(image_id)); % (123287, 1)
fprintf("image name:"), disp(size(image_name)); % (123287, 1)
% sid、image_id 是 int,用 `(i)` 索引
% image_name 是 str,用 `{i}` 索引
fprintf("id: %d, image id: %d, image name: %s\n", sid(1), image_id(1), image_name{1});
% 输出:id: 0, image id: 9, image name: 000000000009.jpg
这篇博客介绍了如何在MATLAB中使用textscan函数读取COCO数据集的ID映射文件,将sampleID映射到对应的imagename,以便进行图像读取操作。代码示例展示了如何解析文件并提取所需信息,最终得到sampleID、imageID和imagename的大小,并展示了一个具体的例子。
4887

被折叠的 条评论
为什么被折叠?



