用MATLAB将一幅图分割成4*3的小块该怎么做呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用MATLAB将一幅图分割成4*3的小块该怎么做呢?相关的知识,希望对你有一定的参考价值。

参考技术A 直接用矩阵操作就可以了,用imread读取图像,读取的结果在matlab中就是一个矩阵,然后用imwrite把你需要的部分写到新的文件中.
例如(时间有限,仅写了灰度图像的一部分):
I=imread('source.bmp');
n=ndims(I);
%获得图像维数,如果是2就是灰度图像,3是彩色图像,需要分别处理
if
n==2
[x,y]=size(I);
%求图像大小
imwrite(I(1:round(x/4),1:round(y/4)),'file.bmp','bmp');
end
这样就把图像分成4*4,最左上角的图像保存到file.bmp中了.
思路大致如此,手头没有matlab,上班ing,供你参考.
以上.

怎样利用matlab对一幅图像进行分块以及重组?

就是将指定的图像分解成若干个大小相等的块,进行某些运算后在重组成一幅图。
能不能给出分块函数的名称或是源代码?
高手帮帮忙!

用col2im函数就行,

    如果是将图像分割成块的时候用的im2col参数为'distinct',那么用col2im函数时参数也是'distinct',

    如果分割图像的时候参数为'sliding',那么用需要用reshape+accumarray函数解决。


参考技术A clear
clc
img = double(imread('tire.tif'));
[r c] = size(img);
w = 8;
imgBlock = im2col(img,[w w],'sliding'); imgBlock = imgBlock(:);
[x y] = meshgrid(1:c,1:r);
xx = im2col(x,[w w], 'sliding'); xx = xx(:);
yy = im2col(y,[w w], 'sliding'); yy = yy(:);
img2 = accumarray([yy xx], imgBlock, [], @mean);
figure,imshow(img, []);
figure,imshow(img2,[]);
参考技术B ssf

以上是关于用MATLAB将一幅图分割成4*3的小块该怎么做呢?的主要内容,如果未能解决你的问题,请参考以下文章

matlab怎么把一幅图片平分成若干份

怎样利用matlab对一幅图像进行分块以及重组?

利用matlab将一张图片分割成10×10的小图片,求程序!

怎么将一个整个的视频切割成几段?用啥软件?汉化的

MATLAB如何切割图像

MATLAB图像拼接问题