Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26796
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-05 10:23
个人简介

走进你的世界太过平庸,我的世界有阳光

文章分类

全部博文(7)

文章存档

2014年(7)

我的朋友

分类: IT业界

2014-04-05 13:52:25

采用了两种方法 1.调用梯度函数,求出图像的梯度
             2.采用sobel算子,求出图像的偏导


下面是两种方法的程序  
1.

f=imread('C:\Documents and Settings\Administrator\桌面\first.jpg');

g=rgb2gray(f);

g=imresize(g,0.5);

g=im2double(g);

[Gx,Gy]=gradient(g);

G=sqrt(Gx.*Gx+Gy.*Gy);

B=mat2gray(G);

thta=atan2(Gy,Gx);

subplot(2,2,1);

imshow(B);

title('幅度图');

subplot(2,2,2)

imhist(B);

title('幅度直方图');

subplot(2,2,3);

imshow(thta);

title('方向图')

subplot(2,2,4);

imhist(thta);

title('方向直方图')

2.

f=imread('C:\Documents and Settings\Administrator\桌面\first.jpg');

g=rgb2gray(f);

g=imresize(g,0.5);

g=im2double(g);

%sobelx=[-1 2 -1,0 0 0,1 2 1];

%sobely=[-1 0 1 ,-2 0 2 ,-1 0 1];

 

sobelx=[-1 0 1;-2 0 2;-1 0 1];

sobely=[-1 -2 -1 ,0 0 0 ,1 2 1];

Gx=conv2(g,sobelx,'same');

Gy=conv2(g,sobely,'same');

G=sqrt(Gx.*Gx+Gy.*Gy);

B=mat2gray(G);

thta=atan2(Gy,Gx);

subplot(2,2,1);

imshow(B);

title('幅度图');

subplot(2,2,2)

imhist(B);

title('幅度直方');

subplot(2,2,3);

imshow(thta);

title('方向图')

subplot(2,2,4);

imhist(thta);

title('方向直方图')


阅读(2497) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~