Эта идея называется вейвлет-разложением.
В частности, то что вы описываете, похоже на вейвлеты Хаара.
Вейвлеты используются, например, в jpeg2000 кодеках
Примеры редактирования картинок ("в отдельном слое можно убрать крупные морщины и прыщи, не повредив мелкую текстуру кожи") есть в Wavelet toolbox, Matlab.
Вариант1:
Расспознаем tesseract'ом в HOCR, находим в нем нужные слова и их координаты. Imagemagick'ом закрашиваем слова на сканам по координатам.
Вариант2:
Распознаем FineReader'ом, экспортируем в djvu, извлекаем из djvu текстовой слой с координатами и парсим его. Далее тоже самое с Imagemagick.
Все это можно автоматизировать скриптами.
Разобъет картинку пополам на левую и правую части.
Для Win не забудьте экранировать пути к файлам и еще, если не путаю, в новых версиях вместо convert magick.exe
Vn обычно считается как нормализованное векторнное произведение векторов построенных на вершинах треугольника (face). Т.е. обычно сколько треугольников в меше, только и нормалей.
Я бы в матлабе/скайлабе сделал примерно так:
1. Выделил слой зеленой краски используя цветовые пространства и получил ч/б маску.
2. Возможно поработал бы морфологическими фильтрами, если необходимо.
3. Нашел связанные компоненты bwlabel и подсчитал их свойства regionprops.
4. Селекция компонент по площади, топологии и/или другим инвариантным к поворотам признакам в соответствии с шаблонами.