我想在图像中的每个像素上找到切线。注意:图像具有白色背景和形状边框颜色是块。
我所做的是,算法
While(true)
take pixel
if pixel color is black
make 3 X 3 matrix => fill the matrix by surrounding pixel color
...means assume white =0 and black=1 then keeping selected pixel
at center for 3 X 3 matrix and finding all other value;
----------------------------here i want to find tangent line to selected pixel;
end if
Move to next pixel.
End while
请在头上帮助考试。
您要寻找的可能是索贝尔操作员。它被用作矩阵围绕像素的社区的卷积实现:
-1 0 1
-2 0 2
-1 0 1
再次使用:
-1 -2 -1
0 0 0
1 2 1
分别调用2个卷积X和Y的结果。一旦拥有它们,就可以通过取平方和的平方根来获得梯度的大小:
mag = sqrt(x * x + y * y);
和梯度的方向(应与您正在检查的像素相切),通过将y的anctangent乘以x:
tangent = atan2(y / x)