Что означает радиус цветного окна в pyrMeanShiftFiltering?
Я понимаю, что цветовой вектор RGB состоит из 3 компонентов, таких как [100, 100, 100]. Тем не менее, из документации, аргумент sr – The color window radius
в функции Python cv2.pyrMeanShiftFiltering(src, sp, sr[, dst[, maxLevel[, termcrit]]])
принимает int.
Что именно означает радиус цвета? Я также хотел бы понять минимальные и максимальные значения, и в каких единицах измерения находятся.
1 ответ
Исходя из того, что я прочитал в описании алгоритма из документации, sr
является параметром для части алгоритма, которая требует идентификации соседа.
Возможно, вы захотите освежить понимание алгоритма среднего сдвига, но в какой-то момент для данного пикселя (X,Y) вам нужно найти его соседей. Хотя часто мы считаем соседями пространственные соседи, то есть пиксели пространственно близки к тому, который мы рассматриваем (|| (X,Y) - (x, y) ||<некоторый радиус, где X,Y - рассматриваемая позиция пикселя). и x, y позиция потенциального соседа), здесь алгоритм также учитывает "цветную" близость, как видно в строке:
окрестность пикселя (X,Y) в объединенном пространственно-цветовом гиперпространстве считается:
(x, y): X-sp
Это означает, что для того, чтобы считаться соседом, пиксель должен быть пространственно близким, а также иметь цвет, близкий к рассматриваемому пикселю. Вы устанавливаете это условие близости с sr
так же, как вы устанавливаете требуемую пространственную близость с sp
, Попробуйте некоторые значения. Это зависит от того, какое определение алгоритм использует для || норма, вероятно, что-то вроде || (R, G, B) - (r, g, b) || = sqrt ((Rr)**2+(Gg)**2+(Bb)**2)