今天我在c#中尝试了角点检测。 我在那里添加了一个示例图像。图像为黑白色,外形和内部形状。
我只关心外形而不是内形。尝试Harris角点检测让我无处可去,所以我想我可以将每个像素放在一个简单的双int结构中:
struct coordinates
{
public int x, y;
public coordinates(int xx, int yy)
{
this.x = xx;
this.y = yy;
}
};
但是试图获得最大和最低,最右和左的教堂再次失败了我并返回......(红线连接左上,右上和右下):
我认为这是因为不是完整的矩形形状(左上角和下角是圆角的)和不均匀的形状(右上角是右边,但是右下角在右下角3/4处向右下方)。 / p>
有关如何解决此问题的任何想法?使用上/左下角作为非圆角对我来说是好的(并且更好),所以最后我在这个白色形状周围有一个完整的矩形。
答案 0 :(得分:1)
进行霍夫变换,找到主导线并计算它们的交叉点。这将改善您的结果,但不能保证找到的形状包含所有白色像素。这需要吗?