选用灰度线性拉伸进行图像增强,应用八方向的sobel算子得到边缘检测图像。

%亲测过,如果g11 选用图像灰度线性拉伸,得到的边缘检测的效果更好。  

    g11=imread('D:\my work\alignment\Vibration\X8 gain 0.18 Tin 2D16F.bmp');

    mask1=[-1 -2 -1;0 0 0;1 2 1];  % 建立方向模板

    mask2=[-2 -1 0;-1 0 1;0 1 2];
    mask3=[-1 0 1;-2 0 2;-1 0 1];
    mask4=[0 1 2;-1 0 1;-2 -1 0];
    mask5=[1 2 1;0 0 0;-1 -2 -1];
    mask6=[2 1 0;1 0 -1;0 -1 -2];
    mask7=[1 0 -1;2 0 -2;1 0 -1];
    mask8=[0 -1 -2;1 0 -1;2 1 0];
    I = im2double(g11);  % 将数据图像转化为双精度
    d1 = imfilter(I, mask1);  % 计算8个领域的灰度变化
    d2 = imfilter(I, mask2);
    d3 = imfilter(I, mask3);
    d4 = imfilter(I, mask4);
    d5 = imfilter(I, mask5);
    d6 = imfilter(I, mask6);
    d7 = imfilter(I, mask7);
    d8 = imfilter(I, mask8);
    dd = max(abs(d1),abs(d2));  % 取差值变化最大的元素组成灰度变化矩阵
    dd = max(dd,abs(d3));
    dd = max(dd,abs(d4));
    dd = max(dd,abs(d5));
    dd = max(dd,abs(d6));
    dd = max(dd,abs(d7));
    dd = max(dd,abs(d8));
    grad = mat2gray(dd);  % 将灰度变化矩阵转化为灰度图像
    level = graythresh(grad);  % 计算灰度阈值

    BW = im2bw(grad,level); % 用阈值分割梯度图像

     imshow(BW);


   师傅曾说过,做图像处理的不要总想着进行膨胀、腐蚀之类的形态学操作,虽然这样可以使图像变得美观,但是会丢失很多的细节信息。以此为戒。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值