Просто прямую можно считать прямоугольником
Так вот, алгоритм:
1) Проводим прямые вдоль битмапы
2) находим крайние точки фигуры, т.к. она выпуклая их будет либо 0 либо две на каждой линии
3) Проверяем не прямая - ли это, думаю понятно как это сделать

4) Берем любую точку, находим ближайшую к ней из массива точек, далее ближайшую к найденной и так получаем таблицу точек упорядоченную по некоторому параметру t
5) Далее аппроксимируем заданную ф - цию последовательно эллипсом, параллепипедом, треугольником центры которых находятся в центре масс фигуры, причем аппроксимация по этому самому параметру t.
6) Сравниваем полученные результаты, та фигура, которая даст наилучшее приближение и будет искомой
Усе