gusucode.com > 切片图matlab源码程序 > 要求/切片图/edge_detection1.m
clc; clear all; close all; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读图 for b=7:68 %提取原图的轮廓,根据轮廓画出三维图像 I = imread([int2str(b),'.bmp']); %I1 = rgb2gray(I); BW1 = im2bw(I); %%%%%%%%%%%%%%%%%%%%%%%%白色区域面积 [L1,num1] = bwlabel(BW1, 8); for i=1:num1 Areas(i) = sum(L1(:)==i); % 面积 end %%%%%%%%%%%%%%%%%%%%%%%% Parameter = max(Areas); F2 = bwareaopen(BW1,Parameter-1);% 删除小面积 %figure,imshow(F2);title('删除小面积') %%%%%%%%%%%%%%%%%%%%%%%% F3=bwfill(F2,'holes'); %填充 %figure,imshow(F3); title('填充') %显示 F4=edge(F3,'sobel'); figure,imshow(F4); title('Edge') %显示 imwrite(F4,[num2str(b),'.jpg']); end %根据轮廓画出血管的三维图像的matlab程序代码 for b=7:68 %提取原图的轮廓,根据轮廓画出血管的三维图像 m1=imread([int2str(b),'.jpg']); m(:,:,b+1)=edge(m1,'sobel'); end for k=7:68 for i=1:400 for j=1:89 if (m(i,j,k+1)==1) % plot3(i,j,k+1,'r-.'); plot3(i,j,k+1,'r.'); hold on end end end end grid on title('三维图') rotate3d hold off