BMP формат
PPM формат
- "image in top to bottom, left to right order."
Расчет координат
Горизонтальное сравнение
- Координаты левого верхнего угла для Tex1 при заданном смещении x и y:
- Tex1PixelX = width - 1 - xmargin + x;
- PPM: Tex1PixelY = (y<yoffset) ? 0 : y - yoffset ;
- BMP: Tex1PixelY = (y<yoffset) ? height - 1 : (height - 1) - (y - yoffset) ;
- Координаты левого верхнего угла для Tex2 при заданном смещении x и y:
- Tex2PixelX = 0;
- PPM: Tex2PixelY = (y<yoffset) ? yoffset - y : 0 ;
- BMP: Tex2PixelY = (y<yoffset) ? (height - 1) - (yoffset - y) : height - 1 ;
- Ширина и высота поля перекрытия:
- xwidth = xmargin - x;
- yheight = (y<yoffset) ? height - yoffset + y : height - (y - yoffset) ;
pixel = xwidth * yheight ;
for (div = 0; div < xwidth ; div++)
{
Tex1CoorXf = (Tex1PixelX + divx) / (float) width;
Tex2CoorXf = (Tex2PixelX + divx) / (float) width;
for (divy = 0; divy < yheight ; divy++)
{
Tex1CoorYf = (Tex1PixelY + divy) / (float) {{Кр|height}};
Tex2CoorYf = (Tex2PixelY + divy) / (float) {{Кр|height}};
Tex1Pixel = tex2D(tex1, Tex1CoorXf, Tex1CoorYf);
Tex2Pixel = tex2D(tex2, Tex2CoorXf, Tex2CoorYf);
ErrorSum += PixelSub(Tex1Pixel, Tex1Pixel);
}
}
ErrorSum = ErrorSum/pixel;
dM[x,y] = ErrorSum;
Вертикальное сравнение
- Координаты левого верхнего угла для Tex1 при заданном смещении x и y:
- Tex1PixelX = (x<xoffset) ? 0 : x - xoffset;
- PPM: Tex1PixelY = (height - 1) - ymargin + y;
- BMP: Tex1PixelY = ymargin - y;
- Координаты левого верхнего угла для Tex2 при заданном смещении x и y:
- Tex2PixelX = (x<xoffset) ? xoffset - x : 0 ;
- PPM: Tex2PixelY = 0;
- BMP: Tex2PixelY = height - 1;
- Ширина и высота поля перекрытия:
- xwidth = (x<xoffset) ? width - xoffset + x : width - (x - xoffset) ;
- yheight = ymargin - y;
Преобразование координат между PPM и BMP
- xPPM = xBMP
- yPPM = height - 1 - yBMP
- xBMP = xPPM
- yBMP = height - 1 - yPPM
Формат для чтения слоя
Текстовый файл в следующем формате:
<Число_строк> <Число_столбцов> <Направление_обхода>
<Имя_картинки_1>
<Имя_картинки_2>
# комментарий
<Имя_картинки_3>
. . .
<Имя_картинки_N>
Направление обхода кодируется следующим образом:
- 0 — слева направо, сверху вниз;
- 1 — слева направо, снизу вверх;
- 2 — сверху вниз, слева направо;
- 3 — снизу вверх, слева направо.
NEW