用Sobel算子来进行边缘检测
应该知道除了Sobel算子以外还有几种常用的算子。
- Roberts
$$\left[\begin{matrix}
-1 & 0 \
0 & 1
\end{matrix}\right]$$$$\left[\begin{matrix}
0 & -1 \
1 & 0
\end{matrix}\right]$$
- Prewitt
$$\left[\begin{matrix}
-1 & -1 & -1 \
0 & 0 & 0 \
1 & 1 & 1
\end{matrix}\right]$$$$\left[\begin{matrix}
-1 & 0 & 1 \
-1 & 0 & 1 \
-1 & 0 & 1
\end{matrix}\right]$$
- Sobel
$$\left[\begin{matrix}
-1 & -2 & -1 \
0 & 0 & 0 \
1 & 2 & 1
\end{matrix}\right]$$$$\left[\begin{matrix}
-1 & 0 & 1 \
-2 & 0 & 2 \
-1 & 0 & 1
\end{matrix}\right]$$
我们取得一个纹素的大小, 即1/texelSize。然后根据现在的纹理坐标前后左右偏移一个像素,得到9个方向的纹理坐标。
然后用Sobel函数算得该纹理坐标的卷积值
- _EdgeOnly = 0时显示原图像和边缘的叠加图像,即withEdgeColor
_EdgeOnly = 1时只显示边缘,其他部分为背景色,即只显示onlyEdgeColor
more >>