分享

高手勿入! 半小时学会Opencv边缘检测

 新用户0118F7lQ 2021-12-14
概述

OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界.

Scharr 算子

Scharr 算子和 Sobel 算子基本一样. 只是卷积核系数不同. Scharr 算子对边界更加敏感, 也更容易误判.

卷积核参数:
图片
例子:

# Scharr 算子
scharr_x = cv2.Scharr(img, cv2.CV_64F, 1, 0)
scharr_y = cv2.Scharr(img, cv2.CV_64F, 0, 1)

取绝对值

scharr_x = cv2.convertScaleAbs(scharr_x)
scharr_y = cv2.convertScaleAbs(scharr_y)

融合

scharr_xy = cv2.addWeighted(scharr_x, 0.5, scharr_y, 0.5, 0)

展示图片

cv2.imshow('scharr_xy', scharr_xy)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

图片

Laplacian 算子

拉普拉斯算子 (Laplacian) 是图像二阶空间导数的二维向同性测度. 拉普拉斯算子可以突出图像中强度发生快速变化的区域, 因此常用在边缘检测任务当中.

图片
在进行 Laplacian 操作之前通常需要先用高斯平滑滤波器 (Gaussian Blur) 降低 Laplacian 算子对于噪声的敏感性.

卷积核参数:
图片
例子:

# 读取图片, 并准换成灰度图
img = cv2.imread('Mona_Lisa.jpg', cv2.IMREAD_GRAYSCALE)

高斯滤波器 (3 X 3)

img = cv2.GaussianBlur(img, (3, 3), sigmaX=0.1)

Laplacian 算子

laplacian = cv2.Laplacian(img, cv2.CV_64F)

取绝对值

laplacian = cv2.convertScaleAbs(laplacian)

展示图片

cv2.imshow('laplacian', laplacian)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

图片

注: Sigma 值越小, 模板的中心系数就越大, 周围的系数较小, 平滑的效果就不是很明显.

Sobel vs Scharr vs Laplacian

图片

Canny 边缘检测

Canny 边缘检测是非常流行的一种边缘检测算法, 由 John Canny 在 1986 年提出.

步骤:

  1. 使用高斯滤波器, 平滑图像, 消除噪声

  2. 计算图像中每个像素点的梯度强度和方向

  3. 使用没极大值抑制 (Non-Maximum Suppression) 消除边缘检测带来的杂散响应

  4. 使用双阈值检测 (Double Threshold) 来确定真实和潜在的边缘

  5. 通过抑制孤立的弱边缘最终完成边缘检测

高斯滤波器

图片

梯度和方向

图片

非极大值抑制

图片
图片

双阈值检测

图片

例子

# 读取图片, 并转换成灰度图
img = cv2.imread('Mona_Lisa.jpg', cv2.IMREAD_GRAYSCALE)

Canny边缘检测

out1 = cv2.Canny(img, 50, 150)
out2 = cv2.Canny(img, 100, 150)

合并

canny = np.hstack((out1, out2))

展示图片

cv2.imshow('canny', canny)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

图片

原文:https://blog.csdn.net/weixin_46274168/article/details/118887396?utm_medium=distribute.pc_feed_v2.none-task-blog-yuanlijihua_tag_v1-1.pc_personrecdepth_1-utm_source=distribute.pc_feed_v2.none-task-blog-yuanlijihua_tag_v1-1.pc_personrec


公众号

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多