求不规则多边形质心

最近做一个关于超像素的实验,实验过程中需要用到超像素的质心,所以在网上搜了一下资料,发现了一些不错的方法。
https://blog.csdn.net/tb3039450/article/details/24115303 这个我认为是挺不错的方法,但是程序的运行效率不高,因为计算每个质心都要便利整个图像,文中给出的图形较小,所以这个缺点还不是很明显,我需要的计算的数据较大,所以说我对这个程序进行了稍微的改进。

function [plot_x,plot_y] = Centroid(labels,labelnumbers,change_map)
%这个函数用来计算超像素质心并标记出来。
plot_x = zeros(1,labelnumbers);
plot_y = zeros(1,labelnumbers); %图像坐标系
area = zeros(1,labelnumbers);

labels = labels+1;%这里的labels就是二值化图像连通区域的标号。
for m = 1:labelnumbers
    [x,y] = find(labels==m);
    area(:,m) = length(x);
    plot_x(:,m) = sum(x)./area(:,m);
    plot_y(:,m) = sum(y)./area(:,m);
end
imshow(drawregionboundaries(labels, change_map, [150]));
hold on;
% scatter(plot_y,plot_x,'r');
plot(plot_y, plot_x,'r.' );
hold off;

里面有一些输入的参数是我实验中需要用到的,如果你不需要这些参数也可以进行调整,原理很简单。
忘了放图了。
因为实验数据不能发布到网上,所以截取了一部分。
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值