То, что вы пытаетесь сделать, является очень, очень сложной задачей. По крайней мере, если вы хотите, чтобы это работало с произвольными фигурами.
Это по простой причине: компьютер не работает как мозг человека. Давайте, например, взглянем на эту верхнюю правую картинку. Что ты видишь? Коробка? Или это какая-то плоская прямоугольная форма с двумя параллелограммами, прикрепленными сверху и слева?
Наш мозг видит трехмерную форму, потому что мы живем в трехмерном мире, и большинство вещей, которые мы видим, являются трехмерными, и наша эволюция привела к образованию нейронных структур, которые легко формируют восприятие таких.
Но есть еще более фундаментальная проблема: сегментация изображения. Вам нужно разделить части изображения на районы для работы. В нашем мозгу распознавание формы объекта, реконструкция и сегментация взаимосвязаны, и это происходит в итерационном процессе. Вы, вероятно, испытывали это несколько раз: вы видели какую-то форму, но сначала не могли сказать, что это такое. И ваш разум мчался с огромным количеством объектов и форм, которые могут быть тем, что вы видите. И через несколько секунд вы четко видите форму. Но не потому, что вы, наконец, поняли это по одной картине, а потому, что мозг дополнил сенсорный вклад своим существовавшим ранее знанием мира.
Задача, которую вы просите, касается не только компьютерного зрения , но и машинного обучения и распознавания образов .