计算机视觉--图像导数-图像梯度向量
来源:互联网 发布:ucosiii软件定时器 编辑:程序博客网 时间:2024/05/02 00:51
基本概念:
强度的变化可以用灰度图像 I(对于彩色图像,通常对每个颜色通道分别计算导数)的 x 和 y 方向导数 Ix 和 Iy 进行描述。
图像的梯度向量为∇I = [Ix, Iy]T。梯度有两个重要的属性,一是梯度的大小:
它描述了图像强度变化的强弱,一是梯度的角度:
α=arctan2(Iy, Ix)
描述了图像中在每个点(像素)上强度变化最大的方向。NumPy
中的 arctan2()
函数返回弧度表示的有符号角度,角度的变化区间为 -π...π。
我们可以用离散近似的方式来计算图像的导数。图像导数大多数可以通过卷积简单地实现:
Ix=I*Dx 和 Iy=I*Dy
对于 Dx 和 Dy,通常选择 Prewitt 滤波器:
和
或者 Sobel 滤波器:
和
代码:
from PIL import Image
from numpy import *
from pylab import *
from scipy.ndimage import filters
img = array(Image.open('2015.jpg').convert('L'))
figure()
gray()
subplot(2,4,1)
imshow(img)
title('yuantu')
axis('off')
sigma = 5
imgx = zeros(img.shape)
filters.sobel(img,1,imgx)
subplot(2,4,2)
imshow(imgx)
title('x')
axis('off')
imgy = zeros(img.shape)
filters.sobel(img,0,imgx)
subplot(2,4,3)
imshow(imgy)
title('y')
axis('off')
mgnitude = sqrt(imgx**2+imgy**2)
subplot(2,4,4)
imshow(mgnitude)
title('x**2,Y**2')
axis('off')
imgx1 = zeros(img.shape)
filters.gaussian_filter(img,(sigma,sigma),(0,1),imgx1)
subplot(2,4,5)
imshow(imgx1)
title('x_gauss')
axis('off')
imgy1 = zeros(img.shape)
filters.gaussian_filter(img,(sigma,sigma),(1,0),imgy1)
subplot(2,4,6)
imshow(imgy1)
title('y_gauss')
axis('off')
mgnitude1 = sqrt(imgx1**2+imgy1**2)
subplot(2,4,7)
imshow(mgnitude1)
title('x_gauss**2,Y_gauss**2')
axis('off')
show()
效果:
- 计算机视觉--图像导数-图像梯度向量
- 计算机视觉之图像特征——图像梯度
- 《python计算机视觉编程》读书笔记------9(图像导数)
- 《python计算机视觉编程》读书笔记------10(图像导数)
- 图像变换 -梯度和Sobel导数(cvSobel)
- 图像导数
- 计算机视觉及图像图像领域people
- 图像处理/计算机视觉资源
- 图像处理/计算机视觉资源
- 图像处理\计算机视觉资源
- 计算机视觉图像数据库资源
- 计算机视觉·图像处理
- 计算机视觉与图像处理
- 计算机视觉/模式识别/图像会议
- 第六章 - 图像变换 -梯度和Sobel导数(cvSobel)
- 第六章 - 图像变换 -梯度和Sobel导数(cvSobel)
- 计算机、图像和计算机视觉资料链接
- 区别: 计算机视觉&图像处理&计算机图形学
- 屏幕适配全攻略
- NYIST 714 异 形 卵(第六届河南省程序设计大赛)
- 比赛排名--拓扑排序
- Java中使用Jedis操作Redis
- 关于Cocoapods安装的小细节错误
- 计算机视觉--图像导数-图像梯度向量
- 手机安全卫士02
- 素数环问题
- 数组型队列(queue)的使用(支持自定义数据类型)(C++版)
- iOS开发中如何管理多个版本的Cocoapods、gem
- HDU 1754 I Hate It 线段树
- 二叉树遍历
- iOS语言国际化
- 扣丁音乐(一)——闪屏页SplashActivity(欢迎界面)