Image processing help file in Russian (utf-8)

(c) Khashin S.I. http://math.ivanovo.ac.ru/dalgebra/Khashin/index.html

khash2 (at) gmail.com

Обработка графики

Из картинки в текст и обратно
Преобразования цветов
Склейка двух файлов в один
PSNR, MSE
Сглаживание и морфология
Сдвиги и повороты
Изменение размера
    Различные методы удвоения изображения
Спрайты
Создать/заполнить картинку с данными цветами, полосы и клетки
Коэффициенты Фурье
Градиенты, производные и вариация
Показать точки из двух столбцов действительной матрицы в bmp-файле
Конвертация в ч/б
Клеточный автомат
Палитра

Из картинки в текст и обратно


Вырезать прямоугольник:
grUtil.exe block src_picture x0 y0 dx dy dst_picture
Из картинки сделать три текстовых файла-матрицы:
grUtil.exe toTxt3 src_picture dst_red.txt dst_green.txt dst_blue.txt
Из блока картинки сделать три текстовых файла-матрицы:
grUtil.exe toTxt3b src_picture dst_red.txt dst_green.txt dst_blue.txt x0 y0 dx dy
Из трех текстовых файлов-матриц построить bmp-файл:
grUtil.exe Txt3bmp red.txt green.txt blue.txt picture.bmp
Цвет точки -> stdio:
grUtil.exe PColor src_picture x y
Цвет точки.r -> stdio:
grUtil.exe PColorR src_picture x y
Цвет точки.g -> stdio:
grUtil.exe PColorG src_picture x y
Цвет точки.b -> stdio:
grUtil.exe PColorB src_picture x y
Цвет точки.YUV -> stdio:
grUtil.exe PColorYUV src_picture x y
Цвет точки.Y -> stdio:
grUtil.exe PColorY src_picture x y
Минимальные/максимальные значения RGB цветов -> stdio:
grUtil.exe min src_picture
grUtil.exe max src_picture
Минимальные/максимальные значения RGB цветов на прямоугольнике -> stdio:
grUtil.exe min x0 y0 dx dy src_picture
grUtil.exe max x0 y0 dx dy src_picture
Гистограммы по цветам:
grUtil.exe histogram src_picture hist.txt


Преобразования цветов

Серая картинка
grUtil.exe ToGray src_picture gray_picture
Разделить на три цвета
grUtil.exe 3Colors src_picture picture_R  picture_G  picture_B
Разделить на три цвета (серые картинки)
grUtil.exe 3ColorsG src_picture picture_R  picture_G  picture_B
Из трех цветов (или трех серых) собрать одну картинку:
grUtil.exe fromGray picture_R  picture_G  picture_B dst_picture
Нормализация до интервала 0-255 по каждому цвету:
grUtil.exe normalize src_picture dst_picture


Склейка двух файлов в один

Склеить два файла в одни по горизонатали:
grUtil.exe JoinH src_1  src_2 dst_picture
Склеить два файла в одни по вертикали:
grUtil.exe JoinV src_1  src_2 dst_picture
Разность: dst := src_1 - src_2 + 128:
grUtil.exe diff src_1  src_2 dst_picture


PSNR, MSE

PSNR(src_1,src_2) -> stdout:
grUtil.exe PSNR src_1  src_2
MSE(src_1,src_2) -> stdout:
grUtil.exe MSE src_1  src_2 


Сглаживание и морфология

Гауссово сглаживание с радиусом r:
grUtil.exe smooth  src_picture r dst_picture
Треугольное сглаживание с радиусом r:
grUtil.exe smoothT  src_picture r dst_picture
Морфологическое поднятие с радиусом r:
grUtil.exe morphUp  src_picture r dst_picture
Морфологическое опускание с радиусом r:
grUtil.exe morphDn  src_picture r dst_picture
Морфологическое поднятие-опускание с радиусом r:
grUtil.exe morphUpDn  src_picture r dst_picture
Морфологическое опускание-поднятие с радиусом r:
grUtil.exe morphDnUp  src_picture r dst_picture


Сдвиги и повороты


Сдвиг на вектор (vx,vy - действительные, интерполяция бикубическая):
grUtil.exe shift  src_picture vx vy dst_picture

Сдвиг на вектор (vx,vy - действительные, интерполяция билинейная):
grUtil.exe shift1  src_picture vx vy dst_picture

Поворот вокруг центра на угол alpha градусов + сдвиг(vx,vy) (интерполяция бикубическая):
grUtil.exe rot  src_picture alpha vx vy dst_picture

Поворот вокруг центра на угол alpha градусов + сдвиг(vx,vy) (интерполяция билинейная):
grUtil.exe rot1  src_picture alpha vx vy dst_picture


Изменение размера


Изменить размер до mx*my с помощью бикубической интерполяции:
grUtil.exe resize src_picture mx my dst_picture

Изменить размер до mx*my с помощью билинейной интерполяции:
grUtil.exe resize1 src_picture mx my dst_picture

Добавить рамку шириной h, заполненную нулями:
grUtil.exe border src_picture h dst_picture

Округлить размеры вниз до кратного k:
grUtil.exe multiple src_picture k dst_picture

Уменьшить размеры в k раз по каждому измерению (усреднением):
grUtil.exe downsize src_picture k dst_picture

Уменьшить размеры в k раз по каждому измерению (прореживанием точек):
grUtil.exe downsize2 src_picture k dst_picture


Различные методы удвоения изображения

Уменьшение размера изображения в два раза можно выполнять двумя способами:
  1. Усреднением по квадрату (2*2)
  2. Взятием точек, у которых обе координаты чётные.
Обратное действие в этих случаях будут несколько различаться.

1. Обратное к усреднение по квадрату 2*2

Знак "+" в конце команды означает дополнительную оптимизацию (см....).
Удвоение тривиальное (из точки - квадрат 2*2):

grUtil.exe double0  src_picture dst_picture

Удвоение билинейное, бикубическое, 5-й степени:
grUtil.exe double1  src_picture dst_picture
grUtil.exe double1+ src_picture dst_picture
grUtil.exe double3  src_picture dst_picture
grUtil.exe double3+ src_picture dst_picture
grUtil.exe double5  src_picture dst_picture
grUtil.exe double5+ src_picture dst_picture

Удвоение Ланцош с параметрами 1,2,3:
grUtil.exe doubleL1  src_picture dst_picture
grUtil.exe doubleL1+ src_picture dst_picture
grUtil.exe doubleL2  src_picture dst_picture
grUtil.exe doubleL2+ src_picture dst_picture
grUtil.exe doubleL3  src_picture dst_picture
grUtil.exe doubleL3+ src_picture dst_picture

Удвоение степеней 1,2,3 оптимальное:
grUtil.exe doubleO1  src_picture dst_picture
grUtil.exe doubleO1+ src_picture dst_picture
grUtil.exe doubleO3  src_picture dst_picture
grUtil.exe doubleO3+ src_picture dst_picture
grUtil.exe doubleO5  src_picture dst_picture
grUtil.exe doubleO5+ src_picture dst_picture

Удвоение по 17 точкам:
grUtil.exe double17  src_picture dst_picture
grUtil.exe double17+ src_picture dst_picture

2. Обратное к взятию точек с чётными координатами


Удвоение билинейное и бикубическое:
grUtil.exe 2double1  src_picture dst_picture
grUtil.exe 2double3  src_picture dst_picture


Спрайты

Спрайтом будем называть изображение, у которого RGB-цвет некоторых точек равен (0,0,0). При наложении спрайтов на другое изображение, такие точки будут пропускаться.
Спрайт-эллипс с данным центром и полуосями:
grUtil.exe spr_ell src_picture cx cy ax ay dst_sprite
Спрайт-максимальный эллипс:
grUtil.exe spr_ellM  src_picture dst_sprite
Спрайт-прямогольник:
grUtil.exe spr_block src_picture x0 y0 dx dy dst_sprite
Наложить спрайт на изображение, центр спрайта переходит в (cx,cy):
grUtil.exe spr_put src_picture sprite cx cy dst_picture
Наложить спрайт с умножением размера в k (double) раз на изображение, центр спрайта переходит в (cx,cy) с поворотом на al градусов:
grUtil.exe spr_putR src_picture sprite k cx cy al dst_picture


Создать/заполнить картинку с данными цветами

Создать файл размером mx*my и заполнить его цветом RGB:
grUtil.exe make mx my R G B dst_picture
Залить файл линейным цветом:
R = r0 + rx*x + ry*y,
G = g0 + gx*x + gy*y,
B = b0 + bx*x + by*y,
grUtil.exe makeL src_picture r0 rx ry g0 gx gy b0 bx by
Заполнить внутренность/внешность эллипса с данным центром и полуосями RGB-цветом
grUtil.exe fill_el  src_picture cx cy ax ay R G B dst_picture
grUtil.exe fill_elO src_picture cx cy ax ay R G B dst_picture
Заполнить внутренность/внешность прямоугольника RGB-цветом
grUtil.exe fill_block  src_picture x0 y0 dx dy R G B dst_picture
grUtil.exe fill_blockO src_picture x0 y0 dx dy R G B dst_picture
Создать картинку из Ny горизонтальных полос высотой h шириной mx цветами R1 G1 B1 R2 G2 B2
grUtil.exe stripH R1 G1 B1 R2 G2 B2 h Ny mx dst_picture
Создать картинку из Nx вертикальных полос шириной h высотой my цветами R1 G1 B1 R2 G2 B2
grUtil.exe stripV R1 G1 B1 R2 G2 B2 h Nx my dst_picture
Создать шахматную картинку цветами R1 G1 B1 R2 G2 B2 из Nx*Ny квадратов размера h
grUtil.exe chess R1 G1 B1 R2 G2 B2 h Nx Ny dst_picture


Коэффициенты Фурье

(i,j)-коэффициент дискретного косинус-преобразования Фурье для области -> stdio:
grUtil.exe fourier1 src_picture x0 y0 dx dy  i j
Все коэффициенты дискретного косинус-преобразования Фурье для области в текстовые матрицы fR.txt, fG.txt, fB.txt:
grUtil.exe fourier src_picture x0 y0 dx dy fR.txt, fG.txt, fB.txt


Градиенты, производные и вариация

Серая картинка dst_gray_picture(x,y) := Длина градиента src_picture(x,y)
grUtil.exe grad src_picture dst_gray_picture
dst_picture(x,y) := Длина градиента src_picture(x,y) по каждому цвету
grUtil.exe gradRGB src_picture dst_picture
dst_picture(x,y) := 128 + 2*dx(src)(x,y) по каждому цвету
grUtil.exe dxRGB src_picture dst_picture
Серая картинка dst_gray_picture(x,y) := Вариация src_picture(x,y)
grUtil.exe variat src_picture dst_gray_picture
dst_picture(x,y) := Вариация src_picture(x,y) по каждому цвету
grUtil.exe variatRGB src_picture dst_gray_picture
Серая картинка dst_gray_picture(x,y) := Длина морфологического градиента src_picture(x,y)
grUtil.exe gradM src_picture dst_gray_picture
dst_picture(x,y) := Модуль гессиана src_picture(x,y) по каждому цвету
grUtil.exe hessRGB src_picture dst_picture
Серая dst_picture(x,y) := Модуль гессиана src_picture(x,y)
grUtil.exe hess src_picture dst_picture


Показать точки из двух столбцов действительной матрицы в bmp-файле

Показать точки из столбцов x1, x2 текстовой матрицы matr.txt в bmp-файле dst_picture размером mx*my кругами цвета RGB радиуса rad>=0.
мин/макс в обоих столбцах -> stdio
grUtil.exe show2C  matr.txt x1 x2 mx my R G B rad dst_picture
Показать точки из строк y1, y2 текстовой матрицы matr.exe в bmp-файле dst_picture размером mx*my кругами цвета RGB радиуса rad>=0.
grUtil.exe show2L  matr.txt y1 y2 mx my R G B rad dst_picture


Конвертация в ч/б

Конвертация в ч/б через уровень яркости level
grUtil.exe bw  src_picture level dst_picture
Конвертация в ч/б через процент белых точек perc
grUtil.exe bwP  src_picture perc dst_picture
Конвертация в серый: превышение яркости над средней в окрестности
grUtil.exe leveling src_picture level dst_picture
Конвертация в ч/б через уровень level превышения яркости над средней в окрестности
grUtil.exe bwS  src_picture level dst_picture
Конвертация в ч/б через процент белых точек perc превышения яркости над средней в окрестности
grUtil.exe bwSP  src_picture perc dst_picture


Клеточный автомат

Клеточный автомат с уровнем k (4<k<9): Если среди 8 соседей не менее k имеют один и тот же цвет, то и центральная точка получает тот же цвет.
grUtil.exe cell  src_picture k dst_picture


Палитра

Привести к картинку к k цветам:
grUtil.exe palette  src_picture k dst_picture