不使用图像处理工具箱来分割图像,我使用了单元格数组。如果我想旋转每个块我应该开发imrotate,但如何?使用细胞并不容易。这是我的分工代码:
A= double(imread('cameraman.tif'));
blockSize = [5 5]
m = 1;
blocks = floor(size(A)./blockSize);
div_im = cell(blocks);
for j = 1:blocks(2)
for i = 1:blocks(1)
% The indices to the current block
blockIndsX = (1:blockSize(1)) + (i-1)*blockSize(1);
blockIndsY = (1:blockSize(2)) + (j-1)*blockSize(2);
div_im{m} = A(blockIndsX, blockIndsY, :);
m = m + 1;
end
end
答案 0 :(得分:0)
首先,在询问要问什么之前你应该清楚..就你的图像轮换而言,这段代码可能对你有帮助。如果我在理解你的问题时错了,请提请我注意..
这里图像被分成50 * 50的块。
im = double(imread('cameraman.tif'));
[m,n] = size(im);
% deg = block angle+90; to rotate anticlockwise
% deg = block angle*90; to rotate clockwise
% rotating clockwise will title your x axis to 90 deg..
% divide it in a block of 50*50
for i = 1:50:m-50
for j = 1:50:n-50
blk_im = im(i:i+49,j:j+49);
rot_im(i:i+49,j:j+49) = imrotate(blk_im,deg,'bilinear','crop');
end;
end;
imshow(rot_im,[]);
这里的块角度应该是度数...如果是弧度,则使用radtodeg
函数将其转换为度数。
答案 1 :(得分:0)