Здесь я расскажу о том, как определял R различие между двумя изображениями.
Вычислим среднеквадратичное отклонение:
H-1 L-1
+-- +--
> > (p1(x,y)-p2(x,y))2
+-- +--
y=0 x=0
r1 = -------------------------,
HL
|
где H - высота сравниваемых изображений,
L - ширина,
p1(x,y) - яркость пиксела с координатами (x,y) в первом
изображении, приведённая к диапазону [0;1] (если,
например, в изображении 256 градаций яркости, то
значение пиксела надо разделить на 255),
p2(x,y) - то же самое для второго изображения.
Далее аналогично вычислим среднеквадратичное отклонение для всех участков 2x2 пиксела, считая яркостью участка среднюю яркость входящих в него пикселов:
H-2 L-2
+-- +--
> > (m1(x,y)-m2(x,y))2
+-- +--
y=0 x=0
r2 = -------------------------,
(H-1)(L-1)
|
1 1 1 1
+-- +-- +-- +--
> > p1(x+i,y+j) > > p2(x+i,y+j)
+-- +-- +-- +--
j=0 i=0 j=0 i=0
где m1(x,y) = ------------------, m2(x,y) = ------------------.
4 4
И для участков 4x4 пиксела:
H-4 L-4
+-- +--
> > (n1(x,y)-n2(x,y))2
+-- +--
y=0 x=0
r3 = -------------------------,
(H-3)(L-3)
|
3 3 3 3
+-- +-- +-- +--
> > p1(x+i,y+j) > > p2(x+i,y+j)
+-- +-- +-- +--
j=0 i=0 j=0 i=0
где n1(x,y) = ------------------, n2(x,y) = ------------------.
16 16
Величина r1 отражает различие с близкого расстояния (когда на сравниваемых изображениях можно различить отдельные пикселы). Величина r2 различие со среднего расстояния (когда нельзя различить деталей меньше чем 2x2 пиксела). Наконец, величина r3 различие с дальнего расстояния (когда уже не видно деталей меньше чем 4x4 пиксела). Определим R как среднее арифметическое между r1, r2 и r3:
r1 + r2 + r3
R = --------------.
3
|
R (как и r1, r2, r3) может принимать значения в диапазоне от 0 до 1, причём 0 соответствует полному совпадению сравниваемых изображений, а 1 максимальному различию.