opencv图片矩形网格边线_图像算法在数值计算中的应用(1):Canny边缘检测算法...

本文介绍了Canny边缘检测算法,包括灰度化、高斯滤波、计算梯度、非极大值抑制和双阈值检测等步骤。通过Python实现展示了如何使用Canny算法处理图像,与OpenCV的Canny函数进行了效果对比,探讨了Python与OpenCV在执行效率上的差异。
摘要由CSDN通过智能技术生成

引言

有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍在广泛应用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。在直角坐标系下,求解域差分网格通常为均匀的矩形,在表达非矩形物体边界时通常需要采用坐标映射或者网格点逼近,而网格点逼近较为简单快捷。

我们对有解析式的几何边界,构造有形状信息的布尔矩阵,可以实现边界形状的识别Python数值优化:使用Euler法求解二维热传导方程2。对于一般的图形通常没有解析边界,使有限差分方法适用于一般(平面)几何的关键是要有一个“形状”矩阵,其值表示域的外部,内部和边界。而图像就是用矩阵存储的,包含许多成熟的特征识别算法,因此考虑采用图像的方法来处理,主要利用的就是边缘检测算法。

Canny边缘检测算法由计算机科学家 John F. Canny 于 1986 年提出,主要可以分为以下几个步骤图像灰度化(降维处理)

高斯滤波(平滑和降噪)

计算图像梯度值和方向

应用非极大值抑制NMS

双阈值检测确定边界

灰度化

灰度化实际上是一种降维的操作,将三个通道的像素值转换为单通道数据,减少计算量(如不进行灰度化,也可以直接进行后面步骤),后面针对单通道进行计算。

def img_grey(img):

"""Grey(i,j) = 0.3 * R(i,j) + 0.59 * G(i,j) + 0.11 * B(i,j)"""

img_grey = np.dot(img[...,:3], [30, 59, 11])/100

return img_grey

高斯滤波

高斯滤波主要使图像变得平滑,减少噪声,但同时也有可能增大了边缘的宽度。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出,而其系数按照高斯函数离散化,具体如下:

滤波核大小为(2k+1, 2k+1), 这里

从0开始计数,与Python编程时保持下标一致,而MATLAB从1开始计数

def gaussian_kernel(sigma,size):

"""Create a (2r+1)x(2r+1) gaussian_kernelH[i, j] = (1/(2*pi*sigma**2))*exp(-1/2*sigma**2((i-r-1)**2 + (j-r-1)**2))Parameters===========sigma: Standard deviationsize: Kernel width size"""

r = int(size/2)

kernel = np.zeros((size,size))

k_sum = 0

for i in range(size):

for j in range(size):

kernel[i, j] = np.exp((-1/(2*sigma**2)*(np.square(i-r) + np.square(j-r))))/(2*np.pi*sigma**2)

k_sum = k_sum + kernel[i, j]

# Normalized the kernel

kernel = kernel / k_sum

return kernel

构造一个3x3的kernel窗口g_kernel = gaussian_kernel(1,3)

[[0.07511361 0.1238414 0.07511361]

[0.1238414 0.20417996 0.1238414 ]

[0.07511361 0.1238414 0.07511361]]

接下来用离散卷积的方法进行平滑滤波,即对原图扫描计算像素平均值卷积扫描过程 https://mlnotebook.github.io/post/CNN1/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值