基本上我要做的是使用预定义的ROI来裁剪和成像到多个新图像。
更长的是我有一张大脑地图,其中有部分定义。使用它我使用imfreehand或roipoly在MATLAB中定义了许多ROI。从那里我已经染色了这些部分的幻灯片。我想使用我从地图中定义的ROI来将真实大脑的图像裁剪成许多新图像。
找不到使用ROI作为裁剪区域的东西,而不仅仅是某个矩形。
如果我需要解释一下,请告诉我。
答案 0 :(得分:1)
使用imfreehand
我想您想要的简单示例:
I = imread('pout.tif');
imshow(I);
h = imfreehand; % now pick ROI
BW = createMask(h); % get BW mask for that ROI
pos = getPosition(h); % get position for that ROI
% define bounding box
x1 = round(min(pos(:,2)));
y1 = round(min(pos(:,1)));
x2 = round(max(pos(:,2)));
y2 = round(max(pos(:,1)));
I2 = I.*uint8(BW); % apply mask to image
I2 = I2(x1:x2,y1:y2);
figure;
subplot(1,2,1);
imshow(I);
subplot(1,2,2);
imshow(I2);
如果您已经以某种方式保存了投资回报率,并且不想再次运行imfreehand
,那么您真正需要的是计算BW
(在投资回报率和零点内的掩码)在其他地方)和边界框(在投资回报率周围紧缩)。