如何在Matlab中从矩阵的单元格数组创建单个图像?

时间:2015-03-07 18:15:57

标签: arrays image matlab cell

我需要将灰度图像分成相等的部分,因此我使用了函数mat2cell。然后我必须单独均衡每个部分,为此我使用函数histeq。我为此重用了相同的单元格数组变量。这是代码:

height=round(size(img,1)/number_of_divisions);
length=round(size(img,2)/number_of_divisions);
M=zeros(number_of_divisions,1);
N=zeros(1,number_of_divisions);
M(1:number_of_divisions)=height;
N(1:number_of_divisions)=length;
aux=mat2cell(img,M,N);

for i=1:size(aux,1)
    for j=1:size(aux,2)
        aux{i,j}=histeq(aux{i,j},256);
    end
end

那么现在如何将每个单元格合并为一个单独的图像?

1 个答案:

答案 0 :(得分:0)

使用cell2mat

img2=cell2mat(aux);

为了获得更好的效果,请使用blockproc

替换您的代码
blocksize=ceil(size(img)./number_of_divisions);
img2=blockproc(img,blocksize,@(block_struct)histeq(block_struct.data));