【发布时间】:2015-03-10 19:50:28
【问题描述】:
我有一张图片:
我想将此图像分成 3 个相等的部分,并分别计算每个部分的 SIFT,然后将结果连接起来。
我发现 Matlab 的 blockproc 就是这样做的,但我不知道如何让它与我的函数一起使用。这是我所拥有的:
[r c] = size(image);
c_new = floor(c/3); %round it
B = blockproc(image, [r c_new], @block_fun)
因此,根据 Matlabs 文档该函数,block_fun 将应用于大小为 r 和 c_new 的块中的原始图像。
这是我写的block_fun
function feats = block_fun(img)
[keypoints, descriptors] = vl_sift(single(img));
feats = descriptors;
end
那么,我的矩阵B 应该是同一图像的所有三个部分的 SIFT 描述符的串联?对吧?
但是我运行命令时遇到的错误:
B = blockproc(image, [rc_new], @block_fun)
函数 BLOCKPROC 在评估用户时遇到错误 提供的函数句柄,FUN。
错误的原因是:
使用单一从结构转换为单一的错误是不可能的。
【问题讨论】:
标签: image matlab image-processing image-segmentation