matlab求大神指导,现在有点迷

workerinChina 2016-12-10 07:23:34
加精
I=imread('公路1.jpg');
figure(1); imshow(I);
[temp,rect]=imcrop(I);
[a,b,c]=size(temp);
y(1)=a/2;
y(2)=b/2;
tic_x=rect(1)+rect(3)/2;
tic_y=rect(2)+rect(4)/2;
m_wei=zeros(a,b);%权值矩阵
h=y(1)^2+y(2)^2 ;%带宽


for i=1:a
for j=1:b
dist=(i-y(1))^2+(j-y(2))^2;
m_wei(i,j)=1-dist/h; %epanechnikov profile
end
end
C=1/sum(sum(m_wei));%归一化系数


%计算目标权值直方图qu
%hist1=C*wei_hist(temp,m_wei,a,b);%target model
hist1=zeros(1,4096);
for i=1:a
for j=1:b
%rgb颜色空间量化为16*16*16 bins
q_r=fix(double(temp(i,j,1))/16); %fix为趋近0取整函数
q_g=fix(double(temp(i,j,2))/16);
q_b=fix(double(temp(i,j,3))/16);
q_temp=q_r*256+q_g*16+q_b; %设置每个像素点红色、绿色、蓝色分量所占比重
hist1(q_temp+1)= hist1(q_temp+1)+m_wei(i,j); %计算直方图统计中每个像素点占的权重
end
end
hist1=hist1*C;
rect(3)=ceil(rect(3));
rect(4)=ceil(rect(4));




%%%%%%%%%%%%%%%%%%%%%%%%%读取序列图像
myfile=dir('*.jpg');
lengthfile=length(myfile);


for l=1:lengthfile
Im=imread(myfile(2).name);
num=0;
Y=[2,2];


%%%%%%%mean shift迭代
while((Y(1)^2+Y(2)^2>0.5)&num<20) %迭代条件
num=num+1;
temp1=imcrop(Im,rect);
%计算侯选区域直方图
%hist2=C*wei_hist(temp1,m_wei,a,b);%target candidates pu
hist2=zeros(1,4096);
for i=1:a
for j=1:b
q_r=fix(double(temp1(i,j,1))/16);
q_g=fix(double(temp1(i,j,2))/16);
q_b=fix(double(temp1(i,j,3))/16);
q_temp1(i,j)=q_r*256+q_g*16+q_b;
hist2(q_temp1(i,j)+1)= hist2(q_temp1(i,j)+1)+m_wei(i,j);
end
end
hist2=hist2*C;
figure(2);
subplot(1,2,1);
plot(hist2);
hold on;

w=zeros(1,4096);
for i=1:4096
if(hist2(i)~=0)
w(i)=sqrt(hist1(i)/hist2(i));
else
w(i)=0;
end
end



%变量初始化
sum_w=0;
xw=[0,0];
for i=1:a;
for j=1:b
sum_w=sum_w+w(uint32(q_temp1(i,j))+1);
xw=xw+w(uint32(q_temp1(i,j))+1)*[i-y(1)-0.5,j-y(2)-0.5];
end
end
Y=xw/sum_w;
%中心点位置更新
rect(1)=rect(1)+Y(2);
rect(2)=rect(2)+Y(1);
end


%%%跟踪轨迹矩阵%%%
tic_x=[tic_x;rect(1)+rect(3)/2];
tic_y=[tic_y;rect(2)+rect(4)/2];

v1=rect(1);
v2=rect(2);
v3=rect(3);
v4=rect(4);
%%%显示跟踪结果%%%
subplot(1,2,2);
imshow(uint8(Im));
title('目标跟踪结果及其运动轨迹');
hold on;
plot([v1,v1+v3],[v2,v2],[v1,v1],[v2,v2+v4],[v1,v1+v3],[v2+v4,v2+v4],[v1+v3,v1+v3],[v2,v2+v4],'LineWidth',2,'Color','r');
plot(tic_x,tic_y,'LineWidth',2,'Color','b');


end
...全文
9674 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36634306 2017-04-01
  • 打赏
  • 举报
回复
算法的问题,你在这里问有什么意义。
xukexin19940108 2017-03-31
  • 打赏
  • 举报
回复
大学时候学过 可是忘光了 哈哈哈
ertemis 2017-03-29
  • 打赏
  • 举报
回复
同样学些有用的东西
qq_28075061 2017-03-25
  • 打赏
  • 举报
回复
学习下
m0_38029120 2017-03-23
  • 打赏
  • 举报
回复
学习学习学习
rechardliu2008 2017-03-15
  • 打赏
  • 举报
回复
问的好像不大清楚啊
_明月 2017-03-14
  • 打赏
  • 举报
回复
你可以到MATLAB中文论坛、MATLAB中文技术论坛去提问。 这里的人,大多对MATLAB听都没有听过。
boolpotato 2017-03-13
  • 打赏
  • 举报
回复
github_37266500 2017-03-13
  • 打赏
  • 举报
回复
帮忙回复下,我也是在学习的
zgl7903 2017-03-09
  • 打赏
  • 举报
回复
建议到更专业的论坛去咨询 http://www.ilovematlab.cn/
Zebulon18 2017-03-08
  • 打赏
  • 举报
回复
workerinChina 2016-12-10
  • 打赏
  • 举报
回复
不知道为什么在图一标定中要跟踪的目标,在图二中处理效果不好,不知道为什么,很迷惑。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧