图像结构
非二值图像结构信息:
边缘;
基元(直线、圆);
图像边缘检测canny edge边缘检测
要求:
- 检测准确:假阳(false positive)、假阴(false negative)最少
- 定位准确:与真实边缘对齐
- 单像素响应:边缘宽度为单像素
步骤:
边缘响应:
计算一阶导,,一阶导的最大值对应边界,计算二阶导,更容易通过0点判断边界。
具体求解:
导数与卷积:
∂ f ‾ ( x , y ) ∂ x = lim ε → 0 f ( x + ε , y ) − f ( x , y ) ε \underline{\partial f} \frac{(x, y)}{\partial x}=\lim _{\varepsilon \rightarrow 0} \frac{f(x+\varepsilon, y)-f(x, y)}{\varepsilon} ∂f∂x(x,y)=limε→0εf(x+ε,y)−f(x,y)对于离散的近似使用 ∂ f ‾ ( x , y ) ∂ x ≈ f ( x + 1 , y ) − f ( x , y ) 1 \underline{\partial f} \frac{(x, y)}{\partial x} \approx \frac{f(x+1, y)-f(x, y)}{1} ∂f∂x(x,y)≈1f(x+1,y)−f(x,y)使用卷积操作:对应卷积核:;
图像梯度:对应向量,分别两个方向求梯度,然后tan反函数(==atan)得出角度,也知道梯度的值:
噪声影响:
一维图像可以看做一个函数,里面的小的噪音与直接上升的区间的梯度差不多原因:是斜率表示影响,上升的大对应的delta也大;
解决:
1.使用高斯平滑:2.计算梯度强度与方向
平滑之后求导数,可以简化操作,相当于先对高斯核求导数,然后用求导后的高斯核卷积:
;
对应的二阶(Laplacian of Gaussian (LoG)):
总结边缘检测算子:
计算边缘定位:
对应的边缘有很多,
3.非极大值抑制
非极大值抑制是一种边缘稀疏技术,非极大值抑制的作用在于“瘦”边。对图像进行梯度计算后,仅仅基于梯度值提取的边缘仍然很模糊。对于标准3,对边缘有且应当只有一个准确的响应。而非极大值抑制则可以帮助将局部最大值之外的所有梯度值抑制为0,对梯度图像中每个像素进行非极大值抑制的算法是:
-
将当前像素的梯度强度与沿正负梯度方向上的两个像素进行比较。
-
如果当前像素的梯度强度与另外两个像素相比最大,则该像素点保留为边缘点,否则该像素点将被抑制。
4.双阈值检测
大于高阈值的一定是边缘,小于低阈值的一定不是边缘,中间的采用看是否与边缘领结确定,临接的标记边缘,否则不是,这样可以得到连续的边缘。
canny edge边缘检测就是对应上面的步骤
基元检测
直线圆;
霍夫变换:
霍夫空间,原本的直线变量x,y转化到霍夫空间对应变量m,b的一个点;原本的一个点,对应一条直线,两个点对应霍夫空间的一个点,
转化成极坐标表示,推广到圆检测;实验实现,一个圆对应霍夫空间的一个圆锥,为了简化计算,直接通过梯度转化成对应一条直线。
拓展到任意图形:
在模板图像中每个梯度方向给以一个重心所在方向的范围,然后在目标图像投票时,找到对应的梯度方向,对于对应的范围进行投票,最后就能找到得分最大的:模板:
使用投票:
拓展:
使用梯度限制范围;