clc
clear
close all
obj = VideoReader('newfile1fps5_0.avi') ;
numFrames = obj.NumberOfFrames;% 帧的总数
writerObj = VideoWriter('newfile1fpsz.avi'); %将生成的视频保存为名称为'car.avi'的视频
load maydataxw.mat
open(writerObj);
cz =cell(numFrames,1);
for i = 1 : numFrames% 读取前
a = read(obj,i);%读取第几帧
% imshow(a);
b = rgb2gray(a);
c = medfilt2(b,[3,3]);
d = im2bw(c);
d1 = im2bw(c,0.6);
se1=strel('disk',8);%这里是创建一个半径为3的平坦型圆盘结构元素
tu = 1-double(d);
tu0=1-double(d1);
% imshow(tu)
img=imerode(tu,se1);%1腐蚀
img=imdilate(img,se1);%1膨胀
tu =img;
[mx,my] = find(tu==1);
nn =250;
data = [mx,my];
if isempty(mx)
se1=strel('disk',6);%这里是创建一个半径为3的平坦型圆盘结构元素
tu = 1-double(d);
img=imerode(tu,se1);%1腐蚀
se1=strel('disk',8);%这里是创建一个半径为3的平坦型圆盘结构元素
img=imdilate(img,se1);%1膨胀
tu =img;
[mx,my] = find(tu==1);
nn =250;
data = [mx,my];
% writeVideo(writerObj,a);
tu =img;
[mx,my] = find(tu==1);
nn =250;
data = [mx,my];
% continue
end
if sum(sum(tu))<50;
num = zeros(3,size(a,1).*size(a,2));
[mm,nn,mn]= size(a);
for ii = 1:mm
for jj = 1:nn
num(:,(ii-1)*nn+jj) = reshape(a(ii,jj,:),3,1);
end
end
num = double(num);
load maydatabp.mat
inputn_test=mapminmax('apply',num,inputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
[~,BPoutput]=max(mapminmax('reverse',an,outputps));
BPoutput(BPoutput~=1)=0;
tu = reshape(BPoutput,mm,nn);
end
if sum(sum(tu))<50
writeVideo(writerObj,a);
continue
end
npan1 =round(length(mx)./nn);
[fenlei1, Cbest1, sumDbest1, Dbest1] = kmeans(data, npan1);
cz{i,1} = Cbest1;
if isempty( Cbest1)
continue
end
cb = round(Cbest1);
[cb20,npan2]=funtu0(tu0,yw1,yw2,cb);
r1=15;
r2 =10;
for yy = 1:npan1
[x,y]= funyuan(cb(yy,1),cb(yy,2),r1,r2);
x(x<1)=1;
y(y<1)=1;
nx = length(x);
for jj = 1:nx
a(x(jj),y(jj),:)=uint8([0 0 255]);
end
end
r3=12;
r4 =8;
for yy = 1:npan2
[x,y]= funyuan(cb20(yy,1),cb20(yy,2),r3,r4);
x(x<1)=1;
y(y<1)=1;
nx = length(x);
for jj = 1:nx
a(x(jj),y(jj),:)=uint8([0 255 0]);
end
end
[xcb1,ycb1] = meshgrid(6:10,1:15);
[xcb2,ycb2] = meshgrid(1:15,6:10);
xcb2(:,6:10) =[];
ycb2(:,6:10) =[];
zcb1 = [reshape(xcb1,1,75) reshape(xcb2,1,50) ;reshape(ycb1,1,75) reshape(ycb2,1,50)];
ncb = length(zcb1);
zcbrbg = uint8([zeros(1,ncb);zeros(1,ncb);255*ones(1,ncb)]);
for jj = 1:i-1
cb1 = cz{jj,1};
for ij = 1:size(cb1,1)
cb2 =round( cb1(ij,:));
for hi = 1:ncb
a(zcb1(1,hi)+cb2(1),zcb1(2,hi)+cb2(2),:)=zcbrbg(:,hi);
end
end
end
if size(a,1)==1088&&size(a,2)==1632
writeVideo(writerObj,a);
else
a =a(1:1088,1:1632,:);
end
end
close(writerObj);
video = VideoReader('newfile1fpsz.avi');
nFrames = video.NumberOfFrames; %得到帧数
H = video.Height; %得到高度
W = video.Width; %得到宽度
Rate = video.FrameRate;
% Preallocate movie structure.
mov(1:nFrames) = struct('cdata',zeros(H,W,3,'uint8'),'colormap',[]);
%read one frame every time
for i = 1:nFrames
mov(i).cdata = read(video,i);
P = mov(i).cdata;
disp('当前播帧数:'),disp(i);
imshow(P)
end
没有合适的资源?快使用搜索试试~ 我知道了~
基于BP神经网络的细胞自动跟踪,基于BP神经网络的图像跟踪(代码完整,数据齐全)
共18个文件
m:8个
png:3个
mat:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 84 浏览量
2023-08-14
22:19:46
上传
评论
收藏 1.28MB RAR 举报
温馨提示
基于MATLAB编程,标准的神经网络分别进行细胞跟踪识别,改进的更准确,代码完整,包含数据和运行结果,代码有注释,方便扩展应用
资源推荐
资源详情
资源评论
收起资源包目录
细胞跟踪.rar (18个子文件)
newfile1fps5_0.avi 563KB
训练BP神经网络
maydatabp.mat 6KB
3.png 2KB
1.png 2KB
mainbp.m 3KB
2.png 2KB
main1.m 2KB
maydatabp.mat 6KB
main3.m 513B
funyuan.m 597B
main.m 4KB
main.asv 4KB
funtu0.asv 1020B
mainyu.m 2KB
main2.m 545B
maydataxw.mat 26KB
funtu0.m 1KB
newfile1fpsz.avi 1.82MB
共 18 条
- 1
资源评论
神经网络机器学习智能算法画图绘图
- 粉丝: 2471
- 资源: 603
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功