gpt4 book ai didi

algorithm - 如何在matlab中找到图像的动态中心点?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:39:50 27 4
gpt4 key购买 nike

我有一个名为 original 的矩阵下图显示了各自的情节。

**Main Figure**

不过,我想将图像的中心部分以相应行的形式放入另一个变量中,如下图大致突出显示的那样。

Center extraction

我抬头寻找中心,了解到在regionprops中使用centroid的方法。例如下面的代码示例。

s = regionprops(original,'centroid');
centroids = cat(1, s.Centroid);
plot(centroids(:,1),centroids(:,2), 'b*')

这种使用 centroid 的方法并没有帮助我获得整个中心行。有没有其他方法可以做到这一点?

最佳答案

计算每列中的平均非零索引的一种方法是直接计算它。

编辑:尚不清楚噪音的含义,但如果我将其解释为您只想考虑每列的最宽区域,那么我们可以找到该区域的平均值,如下所示。

avg = zeros(1,size(original,2));
for c = 1:size(original,2)
% find largest contiguous region in the column
sig = original(:,c);
der = diff([false; sig; false]);
upedge = find(der == 1);
downedge = find(der == -1);
[~,region_idx] = max(downedge-upedge);
first = upedge(region_idx);
last = downedge(region_idx)-1;

% get the average index in the region
avg(c) = (last + first) / 2;
end

% plot results
hold off;
imagesc(original); hold on;
plot(1:size(original,2), avg, '-r', 'LineWidth', 2);
set(gca, 'YDir', 'normal');
axis([1, size(original,2), 1, 250]);

其中,结果如下图

enter image description here

关于algorithm - 如何在matlab中找到图像的动态中心点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45040328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com