Я извлекая очертание сгустка следующим образом:Как масштабировать координаты рамки?
bw = im2bw(image, threshold);
boundaries = bwboundaries(bw);
plot(boundaries(:, 2), boundaries(:, 1), 'k', 'LineWidth', 2);
, что я хотел бы сделать сейчас, чтобы масштабировать boundaries
так, что я могу построить меньшую версию boundaries
внутри исходного boundaries
. Есть простой способ сделать это?
Вот пример, на который должен выглядеть результат: черный - это исходная ограничивающая рамка, а красный - тот же ограничивающий прямоугольник, только масштабированный (но с тем же центром, что и черный ящик).
EDIT: Я предполагаю, что можно масштабировать каждую точку в отдельности, но я до сих пор центрирования координаты. Есть ли лучший способ сделать это?
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
Возможно, удобнее перетаскивать расстояние от каждой точки до центра? Как в: Вычесть центр из вашей матрицы, перемасштабировать добавить центр. –