Две области изображения отличаются оттенком, текстурой и яркостью уровня серого.
Горизонт — лучшая линия на изображении с нашей точки зрения, и ее можно увидеть по отчетливому изменению яркости. Яркость не будет работать с одним порогом, потому что яркость изображения не плоская, поэтому используйте модель распределения яркости, чтобы сгладить небо или воду. Это подразумевает знание цели, но есть две вещи, которые могут дать вам приблизительный ответ: текстура и/или оттенок.
Оттенок с порогом 120 (полученный из гистограммы оттенков) даст вам две области, но не будет четко разделен и будет иметь перекрывающиеся участки. Хотя с помощью этих двух разделов можно найти модель яркости.
То же самое с текстурой. Использование небольшого fft изображения, вычитание постоянного тока, затем усреднение или просто суммирование непостоянных частей приведет к гистограмме с двумя пиками, которые могут быть не такими отчетливыми, как оттенок, но этого достаточно, чтобы найти порог и два области, которые позволят найти модель яркости.
Ключевым фактом является то, что если небо правильно смоделировано как серая поверхность, вы можете вычесть его из изображения и использовать простой порог, чтобы вытащить его.
Обнаружение краев на этом изображении очень шумное, чтобы можно было легко увидеть линию, но если вы можете вытащить линии изображения, не теряя формы, а затем искать прямой и длинный контур, это может потребовать меньше кода/работы.
Надеюсь, это поможет некоторым! Я использовал это, чтобы найти горы на расстоянии, когда между небом и горами не было большой разницы. Кроме того, я только что попробовал это на вашей картинке и почти получил хороший ответ без хорошей модели неба.
person
Jason
schedule
06.12.2013
rgb2gray
. - person Alessandro Jacopson   schedule 01.12.2013