MATLAB数字图像处理练习六

一,题目

一. 对图1分别采用Sobel算子、Roberts算子、Prewitt算子、LOG算子和Canny算子进行边缘检测,同屏显示和对比各检测结果,并对结果进行分析总结。
图1:
在这里插入图片描述

二. 对一幅指纹图像(图2)采用直方图双峰法对图像进行阈值分割。要求给出原图、原图的直方图以及分割后的图像。
图2:
在这里插入图片描述

三. 对一幅显微图像(图3)分别采用迭代阈值法和最大类间方差法(大津法)进行分割。要求给出原图、原图的直方图以及两种方法分割后的图像和两种方法所用的阈值T。
图三:
在这里插入图片描述

四. 利用Hough变换提取图14中的圆,并计算出垫圈的内外径尺寸。
图4:
在这里插入图片描述

二,解答

题目一

clc
clear
I=imread('plane.png');
I=rgb2gray(I);
I=imfilter(I,fspecial('average',2));%均值滤波,滤除部分噪声
figure(1);subplot(231);imshow(I);title('原图')
BW1=edge(I,'sobel',0.07);%0.07为判别阈值,可自己设置,找到最好的图像,下同
subplot(232);imshow(BW1);title('sobel')
BW2=edge(I,'roberts',0.07);
subplot(233);imshow(BW2);title('roberts')
BW3=edge(I,'prewitt',0.07);
subplot(234);imshow(BW3);title('prewitt')
BW4=edge(I,'log',0.008);
subplot(235);imshow(BW4);title('log')
BW5=edge(I,'canny',0.3);
subplot(236);imshow(BW5);title('canny')

在这里插入图片描述

题目二

%%
clc
clear
I=imread('fingerprint.png');
I=rgb2gray(I);
figure(1)
subplot(131)
imshow(I);title('原图')
subplot(132)
imhist(I);title('原图直方图')
Inew=im2bw(I,160/255);%自己找一个合适值即可
subplot(133)
imshow(Inew);title('分割后的图像')

在这里插入图片描述

题目三

1)迭代阈值法

%%
%1
clc
clear
I=imread('cell.png');
I=im2double(rgb2gray(I));
figure(1)
imshow(I)
figure(2)
imhist(I)
T=0.5*(double(min(I(:)))+double(max(I(:))));%初始阈值取平均值
d=1;%标记
while(d)
    g= I>=T;%g为与I同大小的01矩阵
    Tn=0.5*(mean(I(g))+mean(I(~g)));
    d=abs(T-Tn)<0.0001;
    T=Tn;
end
level=T;
BW=im2bw(I,level);%以迭代后的阈值作为分割值
figure(1)
imshow(BW)

在这里插入图片描述

2)最大类间方差法(大津法)

T=graythresh(I);%直接调用matlab中找阈值的函数
BW=im2bw(I,T);
imshow(BW)

在这里插入图片描述

题目四

可参考:http://t.csdn.cn/m2XHo

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值