Сегодня попробовал себя в обнаружении углов в C #. Я добавил туда пример изображения. Изображение выполнено в черно-белом цвете и имеет внешнюю и внутреннюю формы.
Меня волнует только внешняя форма, а не внутренняя. Попытка обнаружения углов Харриса ни к чему не привела, поэтому я подумал, что могу поместить каждый пиксель в простую структуру с двумя целыми числами, подобную этой:
struct coordinates
{
public int x, y;
public coordinates(int xx, int yy)
{
this.x = xx;
this.y = yy;
}
};
но попытка получить самый большой и самый низкий, самый правый и левый тупель снова потерпела неудачу и вернула что-то вроде этого (красная линия соединяет верхний левый, верхний правый и нижний левый):
Я думаю, это происходит из-за неполной формы прямоугольника (левый верхний и нижний углы закруглены) и неровной формы (правый верхний угол правый, но правый нижний угол заканчивается где-то на 3/4 в нижнем правом углу).
Есть идеи, как я могу решить эту проблему? Использование верхнего / нижнего левого угла в качестве некруглых углов подойдет мне (и даже лучше), поэтому в итоге у меня получается полный прямоугольник вокруг этой белой формы.