彩色图像的边缘提取

用mat2gray函数提取

需要注意的是mat2gray函数无法作用与复数

所以我们在这之前要abs

 

 

clc,clear;
img = imread('lena.jpg');
I = im2double(img);
r=I(:,:,1);
g=I(:,:,2);
b=I(:,:,3);
sob1=fspecial('sobel');
sob2=sob1';
Rx = imfilter(r, sob1,'replicate');
Ry = imfilter(r, sob2,'replicate');
Gx = imfilter(g, sob1,'replicate');
Gy = imfilter(g, sob2,'replicate');
Bx = imfilter(b, sob1,'replicate');
By = imfilter(b, sob2,'replicate');
gxx=Rx.^2+Gx.^2+Bx.^2;
gxy=Ry.^2+Gy.^2+By.^2;
gyy=Rx.*Ry+Gx.*Gy+Bx.*By;
theta1=1/2*atan(2*gxy./(gxx-gyy+eps))
F_theta1=(0.5*((gxx+gyy)+(gxx-gyy).*cos(2*theta1)+2*gxy.*sin(2*theta1)));
F_theta1=F_theta1.^0.5;
theta2=theta1+pi/2;
F_theta2=(0.5*((gxx+gyy)+(gxx-gyy).*cos(2*theta2)+2*gxy.*sin(2*theta2)))
F_theta2=F_theta2.^0.5;
I1=max(F_theta1,F_theta2);
I1=abs(I1);
I1 = mat2gray(I1);
imshow(I1)
title('//');

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值