最近我们学校在进行数模培训给的题是有一年的国赛题,血管的三维重建,鉴于本人刚刚接触matlab不久,所以没法编程序,但在网上找的又运行不出来,求各位大神帮忙
图像二值矩阵的0-1互换的matlab程序代码(zhuanhua.m)
function b0=zhuanhua(b0) %图像二值矩阵的0-1互换
for i=1:512
for j=1:512
if b0(i,j)==1
b0(i,j)=0;
else b0(i,j)=1;
end
end
end
附录2:求各切片的最大内切圆的半径及圆心坐标matlab程序代码(ff.m)
function [r, zhongxindian]=ff %输出各切片最大内切圆半径及圆心坐标
a=zeros(512,512);
b=zeros(512,512);
for i=1:512
for j=1:512
a(i,j)=i-257; %横坐标的对应
b(i,j)=j-257; %纵坐标的对应
end
end %图像在xyz面上的x轴、y轴坐标
zhongxindian=zeros(100,2);
r=zeros(100,1);
for k=0:99
t=strcat('f:/',int2str(i),'.bmp');
b=imread(t);
b=zhuanhua(b);%将01互换
blunkuo=edge(b,'sobel');%提取轮廓
bgujia=bwmorph(b,'skel',inf);%提取骨架
%寻找内切圆
[x0,y0,v0]=find(b0lunkuo);
[a0,b0,c0]=find(b0gujia);
m=length(a0);
n=length(x0);
juli=zeros(m,n);
cunfang=zeros(m,2);
for i=1:m
for j=1:n
p1=a0(i);q1=b0(i);
p2=x0(j);q2=y0(j);
juli(i,j)=sqrt((a(p1,q1)-a(p2,q2))^2+(b(p1,q1)-b(p2,q2))^2);%骨架上的各个点到轮廓的距离
end
[zx,zxxh]=min(juli(i,:));%骨架上一点到轮廓的最短距离即以骨架上各个点为圆心的内切园的半径
cunfang(i,1)=zx;
cunfang(i,2)=zxxh;
end
[zd,zdxh]=max(cunfang(:,1));%寻找半径中最大的半径和其对应的圆心坐标
g=a0(zdxh);h=b0(zdxh);
zhongxindian(k+1,1)=a(g,h);
zhongxindian(k+1,2)=b(g,h);
r(k+1)=zd;
end
这个是网上找的程序,想问问在运行程序之前要有啥准备工作
原谅本人盗取别人的劳动成果。相信通过自己努努力,也会成为大神的
图像二值矩阵的0-1互换的matlab程序代码(zhuanhua.m)
function b0=zhuanhua(b0) %图像二值矩阵的0-1互换
for i=1:512
for j=1:512
if b0(i,j)==1
b0(i,j)=0;
else b0(i,j)=1;
end
end
end
附录2:求各切片的最大内切圆的半径及圆心坐标matlab程序代码(ff.m)
function [r, zhongxindian]=ff %输出各切片最大内切圆半径及圆心坐标
a=zeros(512,512);
b=zeros(512,512);
for i=1:512
for j=1:512
a(i,j)=i-257; %横坐标的对应
b(i,j)=j-257; %纵坐标的对应
end
end %图像在xyz面上的x轴、y轴坐标
zhongxindian=zeros(100,2);
r=zeros(100,1);
for k=0:99
t=strcat('f:/',int2str(i),'.bmp');
b=imread(t);
b=zhuanhua(b);%将01互换
blunkuo=edge(b,'sobel');%提取轮廓
bgujia=bwmorph(b,'skel',inf);%提取骨架
%寻找内切圆
[x0,y0,v0]=find(b0lunkuo);
[a0,b0,c0]=find(b0gujia);
m=length(a0);
n=length(x0);
juli=zeros(m,n);
cunfang=zeros(m,2);
for i=1:m
for j=1:n
p1=a0(i);q1=b0(i);
p2=x0(j);q2=y0(j);
juli(i,j)=sqrt((a(p1,q1)-a(p2,q2))^2+(b(p1,q1)-b(p2,q2))^2);%骨架上的各个点到轮廓的距离
end
[zx,zxxh]=min(juli(i,:));%骨架上一点到轮廓的最短距离即以骨架上各个点为圆心的内切园的半径
cunfang(i,1)=zx;
cunfang(i,2)=zxxh;
end
[zd,zdxh]=max(cunfang(:,1));%寻找半径中最大的半径和其对应的圆心坐标
g=a0(zdxh);h=b0(zdxh);
zhongxindian(k+1,1)=a(g,h);
zhongxindian(k+1,2)=b(g,h);
r(k+1)=zd;
end
这个是网上找的程序,想问问在运行程序之前要有啥准备工作
原谅本人盗取别人的劳动成果。相信通过自己努努力,也会成为大神的