数字图像处理技术的MATLAB实现案例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB材料科学图片处理案例
I = imread('bag.png');%读入系统自带的图片bag.png
figure, imshow(I);%创建图形窗口,在窗口中显示读入的图像
E = entropyfilt(I);
Eim = mat2gray(E);
imshow(Eim);%
BW1 = im2bw(Eim, .8);
imshow(BW1);%
figure, imshow(I);%创建新图形窗口
BWao = bwareaopen(BW1,2000);%这里可以看到BWao是BW+area+open的缩写
imshow(BWao); %
nhood = true(9);
closeBWao = imclose(BWao,nhood);%对前面的开启运算得到的图像再进行闭合运算
imshow(closeBWao)%
roughMask = imfill(closeBWao,'holes');%填充孔洞
imshow(roughMask);
figure, imshow(I);
I2 = I;
I2(roughMask) = 0;%图像透过遮罩,遮罩图像黑色部分可以透过去,白色部分透不过imshow(I2);
E2 = entropyfilt(I2);
E2im = mat2gray(E2);% 将矩阵转换成灰度图像
imshow(E2im);
BW2 = im2bw(E2im,graythresh(E2im));
imshow(BW2)
figure, imshow(I);
mask2 = bwareaopen(BW2,1000);
imshow(mask2);
texture1 = I;%将图像I复制为texture1
texture1(~mask2) = 0;%这里有个运算符号~,逻辑非,作用是将mask2黑白颠倒
texture2 = I;%将图像I复制为texture2
texture2(mask2) = 0;
%在MA TLAB中,~A代表“取逻辑非”的意思。但是实际上其意义要比通常的取逻辑非稍微广泛一点。
%假如A = 1,那么~A = 0;
%假如A = [0 1] ,那么~A = [1 0];
%假如A = [0 0 0],那么~A= [1 1 1];
%但是假如A= [3 4 5],那么~A = [0,0,0]。可见~A有那么一点“广义的逻辑非”的意思。imshow(texture1);
figure, imshow(texture2);
boundary = bwperim(mask2);%生成边界线
%BWPERIM函数能够起到探测灰度图象内部物体周边缘的作用,返回一幅相同尺寸的二值图象。
segmentResults = I;
segmentResults(boundary) = 255;%设置边界线颜色为白色
imshow(segmentResults);%
S = stdfilt(I,nhood);
imshow(mat2gray(S));
R = rangefilt(I,ones(5));
% rangefilt 函数句法为J = rangefilt(I, NHOOD),对输入图像I做距离滤波,由NHOOD指定领域
imshow(R);
MATLAB医学图像处理
load mri% 装入文件到MA TLAB的工作空间,其命令形式为load filename
D = squeeze(D);% squeeze函数去除掉维数为1的那个维度,这里由128×128×1×27变为128×128×27
image_num = 8;%对image_num赋值
image(D(:,:,image_num)) %第8张图片,图片尺寸为128×128
axis image %加上坐标
colormap(map) %色彩索引图为map
x = xlim;%函数形式为xlim, ylim, zlim,设置或者查询坐标范围
y = ylim;
contourslice(D,[],[],image_num)%画第8张图的等高线图
axis ij
xlim(x)%设定x坐标范围和上一张图一致
ylim(y)%设定y坐标范围和上一张图一致
daspect([1,1,1])%设置或者查询坐标轴的外观比例
colormap('default')%色彩索引图为默认
phandles = contourslice(D,[],[],[1,12,19,27],8); 画第1,12,19,27张图的等高线图
view(3); axis tight
set(phandles,'LineWidth',2)%设置线宽
Ds = smooth3(D);%平滑三维数据
hiso = patch(isosurface(Ds,5),...%生成面片三维图像
'FaceColor',[1,.75,.65],...%这里使用...进行程序换行连续
'EdgeColor','none');
hcap = patch(isocaps(D,5),...
'FaceColor','interp',...
'EdgeColor','none');
colormap(map)
colormap(map)
view(45,30)
axis tight %设置坐标轴范围为数据范围
daspect([1,1,.4])%设置坐标轴显示比例,这里Z轴比例为1:0.4
lightangle(45,30); %设置光线入射角度
set(gcf,'Renderer','zbuffer'); lighting phong%得到当前句柄,设置光照类型