① 怎么用matlab求质心
最简单的思路:先转成灰度图,然后转成二值图像,然后利用黑色/总像素的比值乘以图像的总面积,得到图形的面积。
如果想做的细,其中的任何一个步骤都会很精致,尤其是二值化,算法有很多种,需要结合实际情况选择合用的算法,或者编写程序根据图像特征自动选择算法。再麻烦一点的话,彩色图像的色彩分割本身就是一个硕士课题了。
② 请问有无线传感器网I加权质心算法matlab代码吗
[capture-of-moving.rar] - 本文详细介绍了在视频图像的基础上用!"#$ & ’(( )*+ 实现运动目标形心捕获的具体程序"从而可以实现运动 目标的位置检测 程序运用改进的形心算法计算目标图形 的中心坐标"并使用了计时器函数实时显示坐标变化值
[codebook.rar] - 实现了基于码书的运动检测,并有与其他的检测算法做对比,例如MOG,Bayes,三帧差分等。
[xin.rar] - 无线传感器网络加权质心自定位算法中加权质心算法仿真
[qq1_2.rar] - 3种定位算法(多边:3 边及4边 最小二乘 质心)的主程序
[802.11opnet.rar] - 802.11opnet,802.11在OPNET中的仿真代码
[rssic.rar] - 无线传感器网络的加权质心算法,用matlab编程的,需要的可以参考
[Simulation1.rar] - 本程序先使用RSSI中对数常态模型来测距离,然后用三边测量法来计算未知节点的坐标。
[RSSIxin.rar] - 基于RSSI测距的无线传感器网络改进质心定位算法
[xinsuanfa2.rar] - 无线传感器网络中质心算法,并有锚节点比例和误差分析
[myDVHOP.rar] - 一种基于RSSI的DV-HOP加权算法,该算法基于节点接收信标节点位置元组时的信号强度(RSSI)对邻居节点间跳数进行加权处理,将节点间的跳数与距离相关联,仿真试验结果证明该加权算法可大大提高定位精度。
③ matlab如何确定一个图像中不同形状物体的质心
clear;clc;close all
I=imread('1.jpg');
I_gray=rgb2gray(I);
level=graythresh(I_gray);
[height,width]=size(I_gray);
I_bw=im2bw(I_gray,level);
for i=1:height %%循环中进行反色
for j=1:width
if I_bw(i,j)==1
I_bw(i,j)=0;
else I_bw(i,j)=1;
end
end
end
[L,num]=bwlabel(I_bw,8);
plot_x=zeros(1,num);%%用于记录质心位置的坐标
plot_y=zeros(1,num);
for k=1:num %%num个区域依次统计质心位置
sum_x=0;sum_y=0;area=0;
for i=1:height
for j=1:width
if L(i,j)==k
sum_x=sum_x+i;
sum_y=sum_y+j;
area=area+1;
end
end
end
plot_x(k)=fix(sum_x/area);
plot_y(k)=fix(sum_y/area);
end
figure(1);imshow(I_bw);
for i=1:num
hold on
plot(plot_y(i) ,plot_x(i), '*')
end
④ matlab 三维矩阵如何求质心
1、首先利用Rand随机生成矩阵,如下图所示。
⑤ matlab区域提取和求质心坐标
用voronoin 例子 x=[0 -.5 1 1 -1]; y=[0 -1 -.5 1 1]; voronoi(x,y);axis([-2 2 -2 2]) [v,c]=voronoin([x;y]') %v就是所有的voronoi边的顶点坐标,c{i}就是第i个点周围的voronoi边的顶点下标 %比如说第1个点(0,0)周围的voronoi边的顶点就是横坐标:v(c{1},1),纵坐标:v(c{1},2) %对于坐标为(inf,inf)的点就是无穷远点,应该不难理解。 for n=1:4 disp(['点(' num2str(x(n)) ',' num2str(y(n)) ')周围的voronoi边的顶点的坐标是:']) disp([v(c{n},1),v(c{n},2)]) end
⑥ 无线传感器网络加权质心定位算法Matlab仿真的一些疑问。
你没有定义信标节点(BeaconAmount)的个数。不定义肯定报错啊。一下是我最近随便编的一段类似于质心算法的东西的核心部分,你的同学应该能看懂,有点帮助。
if num_of_neb_anchor(i)>1&&num_of_neb_anchor(i)<6
%如果未知节点i的邻居锚节点个数在2和5之间
fenmu(i)=0;
fenzi_x(i)=0;
fenzi_y(i)=0;
fenzi_z(i)=0;
for k=1:num_of_neb_anchor(i)
distant_rssi(i,k)=sqrt((node_x(i)-neighbor_anchor_x(i,k))^2+(node_y(i)-neighbor_anchor_y(i,k))^2+(node_z(i)-neighbor_anchor_z(i,k))^2);
fenmu(i)=fenmu(i)+1/distant_rssi(i,k);
fenzi_x(i)=fenzi_x(i)+neighbor_anchor_x(i,k)/distant_rssi(i,k);
fenzi_y(i)=fenzi_y(i)+neighbor_anchor_y(i,k)/distant_rssi(i,k);
fenzi_z(i)=fenzi_z(i)+neighbor_anchor_z(i,k)/distant_rssi(i,k);
end
esti_node_x(i)=fenzi_x(i)/fenmu(i);
esti_node_y(i)=fenzi_y(i)/fenmu(i);
esti_node_z(i)=fenzi_z(i)/fenmu(i);%未知节点的估计坐标
end
⑦ 质心算法matlab求讲解
自从网络文库和网络知道通道阻塞后,好久没回答问题了,今天抽空回答一下:
clear
clc
for i=1:1:10
for j=1:1:10
x(j+(i-1)*10)=(i-1)*10;
y(j+(i-1)*10)=(j-1)*10;
end
end
figure
plot(x,y,'.')
hold on
axis([0 100 0 100])
xy=[x;y]
hold on
xm=90;
ym=90;
n=50;%在原有100个点中随机产生50个点
for i=1:1:n
Sx(i)=rand(1,1)*xm;
Sy(i)=rand(1,1)*ym;
plot(Sx(i),Sy(i),'r*')
xlabel('x轴')
ylabel('y轴')
hold on
end
dm=30
m=100;%%%以上都知道,就是下面看不懂,求讲解
for j=1:1:n
SS=[Sx(j);Sy(j)];%选择一个点
k=0;
for i=1:1:m
d=norm((xy(:,i)-SS),2);%计算这个点和其它100点的距离(用欧式距离)
if d<=dm %距离小于阈值则记录
xx(j,i)=xy(1,i);
yy(j,i)=xy(2,i);
k=k+1;
else%距离太大就不记录(可以这么理解:将随机点的周围点作为一组,太远的点就不作为这一组了)
xx(j,i)=0;
yy(j,i)=0;
end
end
if k~=0%如果这个随机点所在的组不是空集,则计算该组的均值
cent(:,j)=[sum(xx(j,:));sum(yy(j,:))]/k;
else
cent(:,j)=0;
end
plot(cent(1,j),cent(2,j),'o')%画出这个组的质心(将一张图分为几组)
hold on
plot([cent(1,j) Sx(j)],[cent(2,j) Sy(j)],'R') %画出这个随机点所属于的质心
Title('Centroid')
hold on
MM=[cent(1,j);cent(2,j)]
e(j)=norm((MM-SS),2)/dm%计算误差(质心和随机点)
end
figure
axis([0 n 0 1])
j=1:1:n
plot(j,e(j) ,'-r.')%画出这50个点的误差,即距离质心的距离
hold on
Title('Centroid')
E=sum(e)/n
⑧ matlab求质心坐标
1、首先在命令窗口下,输入x=10.^(0:0.01:10);定义x的范围为1到10的10次幂。