|
11、图像边缘检测(Sobel与Canny)与关键点检测(cornerHarris边角)
Sobel 边缘检测 寻找图像中在纵横方向上面值变化比较大的区域
from scipy import ndimage
sx = ndimage.sobel(img, axis=0, mode='constant')
sy = ndimage.sobel(img, axis=1, mode='constant')
sob = np.hypot(sx, sy)
步骤:
1、将彩色图像转换为灰度图像
2、计算横向和纵向的梯度
3、计算梯度的大小
4、规范化梯度值
Canny filter 基于 Sobel filter 但更复杂
Canny 边界检测
from skimage.feature import canny
canny_edges = canny(img, sigma=5)
如果不进行高斯滤波去噪:sobel效果不行 canny效果还是可以的
Canny Detector是一种针对快速实时边缘检测而优化的多阶段算法。
该算法的基本目标是检测亮度(大梯度)的急剧变化,
例如从白色到黑色的转换,并在给定一组阈值的情况下将它们定义为边缘。
Canny算法有四个主要阶段:1、降噪 2、求梯度 3、非最大抑制 4、滞后阈值
关键点检测(cornerHarris边角)
Harris Corner Detector 哈里斯边角侦测
检测在所有方向像素值变化都比较大的区域, 这些区域被称为corner, 边角.
import cv2
dst = cv2.cornerHarris(gray,2,3,0.04)
代码示例的ipynb文件在附件,可提供免费下载!
东方老师AI官网:http://www.ai111.vip
有任何问题可联系东方老师微信:dfy_88888
【微信二维码图片】
|
|