my_im2col.m
来自「该代码用c++语言实现了KSVD算法,运行环境为vc6.0」· M 代码 · 共 17 行
M
17 行
function [blocks,idx] = my_im2col(I,blkSize,slidingDis);
if (slidingDis==1)
blocks = im2col(I,blkSize,'sliding');
idx = [1:size(blocks,2)];
return
end
idxMat = zeros(size(I)-blkSize+1);
idxMat([[1:slidingDis:end-1],end],[[1:slidingDis:end-1],end]) = 1; % take blocks in distances of 'slidingDix', but always take the first and last one (in each row and column).
idx = find(idxMat);
[rows,cols] = ind2sub(size(idxMat),idx);
blocks = zeros(prod(blkSize),length(idx));
for i = 1:length(idx)
currBlock = I(rows(i):rows(i)+blkSize(1)-1,cols(i):cols(i)+blkSize(2)-1);
blocks(:,i) = currBlock(:);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?