边缘检测
我使用Soble运算符来获得一些有用的points.Here是我的al:
for (int x = 0; x < mWidth; x++) {
for (int y = 0; y < mHeight; y++) {
int grayX = getGrayPoint(x + 1, y - 1) + 2 * getGrayPoint(x + 1, y) + getGrayPoint(x + 1, y + 1) -
(getGrayPoint(x - 1, y - 1) + 2 * getGrayPoint(x - 1, y) + getGrayPoint(x - 1, y + 1));
int grayY = (getGrayPoint(x - 1, y + 1) + 2 * getGrayPoint(x, y + 1) + getGrayPoint(x + 1, y + 1)) -
(getGrayPoint(x - 1, y - 1) + 2 * getGrayPoint(x, y - 1) + getGrayPoint(x + 1, y - 1));
int gradient = (int) Math.sqrt(grayX * grayX + grayY * grayY);
if (gradient > 40){
mEdgePoints.add(new int[]{x,y});
}
}
}简化边
我知道Douglas-Peucker al可以帮我简化边,但是关键是边点的顺序。
道格拉斯-派克
,那么我如何使用Douglas al?
发布于 2016-09-16 13:54:15
在简化之前,您必须连接连续链中的边缘点。
众所周知的Canny算法最重要的部分是边缘跟踪,所以您可能会学到这一点,并应用使用过的方法。
https://stackoverflow.com/questions/39531770
复制相似问题