美文网首页
Python OpenCV Sobel算子

Python OpenCV Sobel算子

作者: LabVIEW_Python | 来源:发表于2021-03-12 07:07 被阅读0次
传统计算机视觉利用算子(Operator),以及算子集对进行图像处理,从而获得特征图像。Sobel算子(Sobel operator)是Irwin Sobel设计的,广泛用于边缘提取的算子。 Sobel算子(Sobel operator)

Sobel算子的Python范例程序

import cv2 
import matplotlib.pyplot as plt

img = cv2.imread('lena.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_sobel_x = cv2.Sobel(img, -1, 1, 0, ksize=3)
img_sobel_y = cv2.Sobel(img, -1, 0, 1, ksize=3)
img_sobel_xy = cv2.Sobel(img, -1, 1, 1, ksize=3)

titles = ['Original', 'Sobel X','Sobel Y', 'Sobel XY']
images = [img, img_sobel_x, img_sobel_y, img_sobel_xy]

for i in range(4):
    plt.subplot(2, 2, i + 1), plt.imshow(images[i], 'gray')
    plt.title(titles[i])
    plt.xticks([]), plt.yticks([])
plt.show()
运行结果

算子与CNN中的卷积核:
CNN中的卷积核即是与之相对应的概念。不同是,前者需要算法开发者手动设计(例如:Sobel算子由Irwin Sobel设计),而后者通过在大数据中训练自动选取,而且通常情况下CNN网络中的卷积核数量远超过手动设计的卷积核,又称滤波器核。

CNN中的卷积计算,可以理解为:算子(卷积核、滤波器核)在图像上沿指定维度滑动,同时将矢量点积值作为对应输出矩阵元素的值。

由上可见:传统视觉中的算子、滤波器、滤波器核与深度学习卷积神经网络中的卷积、卷积核就对应同一起来了。

相关文章

网友评论

      本文标题:Python OpenCV Sobel算子

      本文链接:https://www.haomeiwen.com/subject/qmtbqltx.html