0

我正在尝试使用 California ND Datastet 实现 vlsh,它由 701 张照片组成。10 个主题在一个 txt 文件中记录了哪些照片几乎是重复的,我们也有相关矩阵。图像是 RGB 的,我将它们缩小为 20x20。我创建了一个 20x20x3x701 的 4 维数组。于是我尝试reshape,得到了一个1200x701的矩阵,但是问题是reshape不能保持原矩阵的顺序。我尝试在线搜索,大多数建议是使用“Permute”,但在我看来这不适合我的情况。

我可以发布matlab代码:

`
path='C:\Users\franc\Desktop\stage\californiaND\prova*.jpg';
path2='C:\Users\franc\Desktop\stage\californiaND\prova';
d=dir(path);
a=[];
for m=1:length(d)
  a=cat(4,a,imread(strcat(path2,d(m).name)));
end
r=reshape(a,[],701);
r=double(r);
L = lshConstruct( r, 10,4);`
4

1 回答 1

0

我假设您需要 RGBRGB 格式的一维向量,否则解决方案将是微不足道的(只是(:))。

假设imread一张一张地读取 20x20x3 图像,这就是您直接制作 2D 矩阵的方式:

for m=1:length(d) % this is 701, right?
  im=imread(strcat(path2,d(m).name));
  im=permute(im,[3 1 2]);
  a=cat(2,im(:));
end
于 2017-08-23T11:37:40.887 回答