我一直在使用blockproc块状处理图像.不幸的是,它blockproc是图像处理工具箱的一部分,我个人电脑上没有.
基础Matlab中是否有可以替代的功能组合blockproc?
我最初的猜测是用于im2col将每个块转换为列,然后arrayfun处理每个列.然后我意识到这im2col也是图像处理工具箱的一部分,所以这不能解决我的问题.
我有N ^ 2个矩阵.每一个都是3x3矩阵.将它们连接到3Nx3N矩阵的一种方法是写入
A(:,:,i)= # 3x3 matrix i=1:N^2

B=[A11 A12 ..A1N;A21 ...A2N;...]
但是当N很大是一项繁琐的工作.你有什么优惠?
我有一个矩阵,其尺寸不会是3的倍数,也可能是.我们如何将整个图像分成3*3矩阵的块.(可以忽略不属于3*3倍数的最后一个.此外,3*3矩阵可以保存在数组中.
a=3; b=3; %window size
x=size(f,1)/a; y=size(f,2)/b; %f is the original image
m=a*ones(1,x); n=b*ones(1,y);
I=mat2cell(f,m,n);
Run Code Online (Sandbox Code Playgroud)