我正在通过以下方式提取 blob 的轮廓:
bw = im2bw(image, threshold);
boundaries = bwboundaries(bw);
plot(boundaries(:, 2), boundaries(:, 1), 'k', 'LineWidth', 2);
我现在想做的是缩放boundaries
,以便我可以boundaries
在原始内部绘制一个较小的版本boundaries
。是否有捷径可寻?
下面是一个关于结果应该是什么样子的示例:黑色是原始边界框,红色是相同的边界框,只是缩放(但与黑框具有相同的中心)。
编辑: 我想我可以单独缩放每个点,但是我仍然需要重新定位坐标。有没有更好的方法来做到这一点?
scale = 0.7
nbr_points = size(b, 1);
b_min = nan(nbr_points, 2);
for k = 1 : nbr_points
b_min(k, :) = ([scale 0; 0 scale] * b(k, 1:2)')';
end