【发布时间】:2013-11-24 07:58:50
【问题描述】:
我前两天在how to segment the image into block中问过如何将图像分割成块。幸运的是,我得到了 Dear chappjc 的最佳答案。
[m,n] = size(Image);
numBlocksX = 10; numBlocksY = 10;
bsX = ceil(n/numBlocksX); bsY = ceil(m/numBlocksY);
numFullBlocksX = floor(n/bsX); numFullBlocksY = floor(m/bsY);
xBlocks = [repmat(bsX,numFullBlocksX,1); mod(n,bsX)*ones(mod(n,bsX)>0)];
yBlocks = [repmat(bsY,numFullBlocksY,1); mod(m,bsY)*ones(mod(m,bsY)>0)];
blockCell = mat2cell(Image,yBlocks,xBlocks);
我的问题:
我的图片尺寸为 160 x 160。 当我尝试将图像分割成 8 x 8 块,或 10 x 10,或 12 x 12 等时,代码运行良好。
但是当我尝试将图像分割成 22 x 22 的块数时,代码可以工作,但图像被分割成 21 x 21 而不是 22 x 22!!
分割是否取决于原始图像的大小?因为当我使用更大的图像时,图像被分割成 22 x 22。
我只需要你对我的问题的意见(如果分割取决于图像的大小?)
我需要你的帮助!
【问题讨论】:
-
你有没有试过逐行浏览代码,看看你是否理解它的作用?
-
真诚地不,我不明白所有的行,但它运作良好:)
标签: image image-processing matlab image-segmentation