group-telegram.com/gkhnewsru/2213
Last Update:
У товарищества возникла задача — осметить работы по укладке асфальта на участке. Чтобы узнать количество необходимого асфальта, нужна площадь асфальтируемой поверхности, в данном случае - тротуара. А он оказался очень “фигурным”.
Линейные размеры достаточно просто получить прямым замером или по высотным снимкам. А вот с площадью участка такой формы дело обстояло сложнее.
В итоге был использован такой способ.
1. Найден хороший снимок участка с квадрокоптера, где обзор сверху вниз был под очень острым углом (высота была 500м). Спутниковые снимки тоже могут подойти, если позволяет чёткость .
2. Вычислен масштаб: ширина подъезда дома по спутниковым снимкам - 31.2 м (с паспортным достаточно точно совпадает), на фотографии - 450 px. Подсчитаны линейные размеры и площадь пикселя фото "на местности" для пересчёта.
3. На фотографии закрашена нужная площадь однотонным произвольным цветом (которого на изображении больше нет). Например, чисто жёлтым (FFFF00).
4. Из картинки получена гистограмма распределения цветов, которые отсортированы по встречаемости:
$ convert 112.jpeg -format %c histogram:info:112.txt
$ cat 112.txt | sort -rn | head -n3
36631: (255,255,0) #FFFF00 yellow
565: (255,254,3) #FFFE03 srgb(255,254,3)
471: (99,98,103) #636267 srgb(99,98,103)
5. Количество пикселей нужного цвета (36631) умножены на площадь одного пикселя (0.00481 кв.м), и тем самым получены 176 кв.м на местности.
Таким образом, задача фактически свелась сперва к вычислению площади закрашенной фигуры на картинке, а из неё - к получению количества пикселей нужного цвета. При должной сноровке точность получается феноменальная: площадь крыши дома (известная из тех.паспорта) вычислялась с погрешностью менее 1%.
Автор: Ларионов Дмитрий («Записки усталого админа»)