有人知道如何在matlab中裁剪图像,但裁剪图像结果应该是正方形吗?所以,宽度和高度应该是相同的大小..谢谢..
im=dicomread('078tm.L.dcm');
A=double(im);
B = A/max(A(:));
crop= imcrop(B);
[w h]=size(crop);
if w~=h
sizew=w;
sizeh=h;
if sizew > sizeh || sizeh < sizew
w=sizew-sizeh
else
h=sizeh-sizew
end
end
crop2= imcrop(B,[crop(1) crop(2) w h]);
dicomwrite(crop2, 'a.dcm');
我认为不对,因为我不知道如何获得位置图像裁剪。
答案 0 :(得分:0)
试试这个
[crop rect] = imcrop(B); % interactively crop
if rect(3) ~= rect(4), % not square
c = rect(1:2) + .5*rect(3:4); % center
w = min( rect(3:4) ); % take min dimension
rect = [ ceil(c-.5*[w w]), w, w ];
crop = imcrop( B, rect ); % re-crop
end
答案 1 :(得分:0)
我猜你的问题是Matlab中数字的坐标系。您可以在link找到更多信息。