Клуб любителей Макро / Статьи / Программа 'Пипетка' - удобная экранная лупа и 'шумометр' в одном флаконе
Главная
Конкурсы
Выставки
Галерея
Макроистории
Статьи
Макрооптика
Макрошкола
Обзоры
Блоги
Клуб
  Меню
    Новое в Клубе
   Кнопки Клуба
Кнопки нашего клуба, для всех друзей нашего сайта!

    Новое в блогах(RSS)
    Новое в галерее(RSS)
    Новое на форуме(RSS)
    Новое на macroID(RSS)

Программа 'Пипетка' - удобная экранная лупа и 'шумометр' в одном флаконе

Pipette (версия 1.5)

Скачать программу (Pipette.zip, 219 781 байт)

Назначение и особенности

 С помощью этой небольшой бесплатной программы, действующей аналогично инструменту «Пипетка» (EyeDropper) растровых графических редакторов (Adobe Photoshop, Corel PhotoPaint и т.д.), можно легко определять RGB-значения цветов на любых изображениях, показываемых на экране, а также одновременно видеть сильно увеличенные фрагменты этих изображений в местах взятия цветовых проб (т.е. это ещё и экранная лупа). Она может пригодиться, например, в тех случаях, когда хочется более детально познакомиться с техническими деталями заинтересовавшей нас фотографии прямо в галерее какого-нибудь сайта, а загружать ради этого целый Photoshop как-то не хочется… Вместе с тем, у этой пипетки есть некоторые особенности, которые могут оказаться полезными и при работе в графическом редакторе (или, возможно, при работах, даже не имеющих отношения к фотографии):

  • Масштабы увеличения – от 1× до 8×;
  • Размеры «пипетки» (пятна опробования) – от 1×1 до 11×11 пикселов (с усреднением цвета);
  • «Пипетка» как квадратной, так и круглой формы со сглаживанием ступеней растра (anti-aliasing);
  • Отображение цветовой информации не только в координатах RGB, но и в координатах CIE L*a*b* и CIE L*C*H*;
  • Вычисление значений «шумов» в пределах пятна «пипетки» (по каждому из каналов) двумя методами;
  • «Замораживание» положения «пипетки».

Установка

 Программа работает под управлением ОС семейства MS Windows и распространяется в виде ZIP-архива. Для её установки требуется только скопировать папку с файлами из архива в любое место на компьютере. В архиве находятся файлы:


  1. Pipette.exe – главный исполняемый файл (сама программа);
  2. Pipette.ini – инициализационный файл (с параметрами запуска);
  3. Pipette.chm – файл справки;
  4. Round.dat – коэффициенты сглаживания для всех размеров круглого пятна «пипетки»;
  5. *.par – файлы с параметрами цветовых RGB-пространств (для цветовых преобразований), в настоящее время: sRGB.par и Adobe98.par (пусть будет…);
  6. ChromAd.dat – файл с параметрами хроматической адаптации (для цветовых преобразований);
  7. WP_XZ.dat – файл с параметрами стандартных источников света (для цветовых преобразований);
В реестр программа ничего не записывает, поэтому для её удаления нужно только удалить эту папку со всем содержимым.


Работа с программой

 Окно запущенной программы висит поверх остальных окон в удобном для Вас месте, его размеры можно изменять. Когда курсор находится за пределами окна Pipette и Вы работаете с другими приложениями (например, рыскаете по фотогалерее), в окне отображается увеличенный фрагмент экрана в районе курсора, а красной рамочкой в центре фрагмента – область цветового опробования (пятно). Над фрагментом постоянно показывается текущая информация (слева направо, по порядку):


  1. Значения цветов (средние для пятна опробования) в выбранных координатах (RGB, CIE L*a*b*, CIE L*C*H*);
  2. Квадратик, окрашенный в получающийся суммарный цвет;
  3. Разницы значений dG=R-G и dG=B-G, по которым сразу видно отличие текущего цвета от нейтрально-серого (у которого обе величины dG равны 0) – только при выборе RGB-координат;
  4. Средний разброс значений цветов в пределах пятна опробования (N или G, в зависимости от метода оценки: см. ниже), по которому можно оценивать уровень «шумов» на выбранных участках изображения (независимо для трёх каналов). Эта величина для канала X вычисляется по простой формуле:
      Nx = (|X1 - Xm| + |X2 - Xm| + ... + |Xn - Xm|) / n,
    в которой n – число пикселов в пятне опробования; X1, X2, ..., Xn – значения канала X для 1-го, 2-го, ..., n-го пикселов; Xm – среднее значение для канала X (см. п. 1). Однако, это среднее значение может вычисляться по-разному (см. ниже).

 Если курсор передвинуть на окно программы, то показывается панель для настройки программы. Сверху – ползунок для выбора степени увеличения лупы (Zoom = 1× .. 8×). Под ним – ползунок для выбора размера пятна, т.е. его ширины/высоты (Sample size = 1 .. 11 пикселов). Рамочка пятна опробования не показывается, если убрать галочку в пункте «Show sampling area» (например, когда нужна только экранная лупа). Если стоит галочка в пункте «Round», то используется пятно опробования не квадратной формы (как в PhotoShop'е и других редакторах), а круглой. При этом учитывается сглаживание ступеней растра на границах круга (anti-aliasing). Оно вычисляется, исходя из площадей, занимаемых кругом для каждого из пикселов. Маленькие таблички с этими данными для каждого размера круглого пятна находятся в текстовом файле Round.dat, который должен размещаться в одном каталоге с программой. Справа можно выбрать одну из трёх систем цветовых координат:


  • RGB
    – красный, зелёный и синий 8-битные каналы [0 .. 255];
  • CIE L*a*b*
    – L*: ось светлоты [0 .. +100],
    – a*: ось от зелёного до красного цвета [-128 .. +127],
    – b*: ось от синего до жёлтого цвета [-128 .. +127]
    (очевидно, что этих крайних значений по хроматическим осям мы никогда не увидим);
  • CIE L*C*H*
    иногда удобное «цилиндрическое» представление системы CIE L*a*b*, аппаратно-независимый аналог модели HSL (Hue, Saturation, Lightness). В нём:
    – L* (от Lightness): ось светлоты [0 .. +100],
    – C* (от Chroma, то же, что Saturation): насыщенность [0 .. +100],
    – H* (Hue): цветовой тон [0° .. 360°]. Тут следует особо подчеркнуть, что наблюдаемые на изображениях значения «шумов» по оси H* сильно растут с уменьшением насыщенности (и достигают предела в окрестности ахроматической точки, где ось H* оказывается вообще неопределённой).

 Интересной особенностью программы, оказывающейся важной при оценке «шумов», является выбор того среднего значения, относительно которого следует измерять отскоки отдельных пикселов. Самый простой и стандартный подход – просто использовать средние значения каналов, включая ближайшее окружение каждого пиксела (т.е. в квадрате 3×3 пиксела) и усреднять отскоки в пределах пятна опробования. Этот метод отрабатывает только высокочастотный «шум» (отскоки отдельных пикселов).
 Однако, в программе также реализован и нестандартный подход к оценке «шумов»: вычисление средних значений каналов по всему пятну опробования и измерение отскоков отдельных пикселов относительно этой «базовой плоскости» (программа пока что использует только линейное приближение):




 Очевидно, что в случае горизонтальной базовой плоскости он хорошо работает только на очень ровно окрашенных участках. Вместе с тем, фотоизображениям свойственна насыщенность градиентными цветовыми переходами. На этих участках такой примитивный подход будет заметно завышать значения «шумов» (особенно, при больших размерах пятна опробования и значительной «крутизне» цветового перехода). Поэтому лучше использовать не горизонтальные, а наклонные базовые плоскости, соответствующие среднему градиенту в области опробования:




 При установке галочки напротив опции «Use gradient» («Использовать градиент») программа методом наименьших квадратов «на лету» вычисляет уравнения трёх этих плоскостей (для каждого канала отдельно, с учётом сглаживания ступеней растра на краях пятна опробования, если оно круглое) и измеряет отскоки пикселей именно от этих плоскостей. При этом перед значениями «шумов» показываются вместо букв «N» («Normal») буквы «G» («Gradient»). Опция может также включаться и выключаться с клавиатуры – нажатием на клавишу «G» при активном окне программы. Надо сказать, что градиентный метод отличает такое закономерное поведение, как увеличение значений для сильных отскоков пикселов, когда они приближаются к краям пятна опробования (т.к. эти пикселы также используются при расчёте наклонной базовой плоскости). Например, при изучении одного чёрного пиксела на белом фоне квадратной «пипеткой» 9×9 пикселов обнаруживается, что при нахождении пиксела в углах квадрата значения «шума» равны 8.9, а при его нахождении в центре квадрата – 6.2.

 Положение лупы можно «замораживать» – чтобы можно было легко отслеживать изменение всех значений для выбранного участка изображения при манипуляциях с ним в редакторе (например, при настройке цветового баланса). Для этого надо активизировать окно программы (просто ткнув в него мышью), перевести курсор в нужное место на изображении и нажать клавишу «F» на клавиатуре. После этого можно работать с изображением в редакторе – но следует помнить о том, что оно должно отображаться в масштабе 100% («пиксел в пиксел») и не должно перемещаться (например, прокручиваться). Для отмены «заморозки» надо снова активизировать окно программы и нажать клавишу «F». Для отслеживания значений в нескольких местах можно запустить и несколько экземпляров программы одновременно. Хотя, надо сказать, что в Adobe PhotoShop подобный инструмент предоставлен для работы с кривыми.

 Наконец, я оставил работающей одну отладочную функцию (она может оказаться полезной): при нажатии на клавишу «D» (если окно программы активизировано) в каталог программы записывается текстовый файл debug.txt, в котором находится некоторая информация (большей частью – таблицы данных текущего пятна опробования). Этот файл перезаписывается при каждом нажатии клавиши.

Сводка назначений клавиш, которые можно нажимать при активном окне программы:
КлавишаНазначение
C Циклическая смена цветовых моделей (RGB → CIE L*a*b* → CIE L*C*H*)
DЗапись отладочного файла debug.txt
F"Заморозка" положения лупы
GВключение/выключение режима учёта цветовых градиентов при вычислении значений «шумов»
RПереключение формы пятна (квадратная/круглая)
SВключение/выключение отображения рамки пятна опробования
*Увеличение масштаба лупы
/Уменьшение масштаба лупы
+Увеличение размера пятна опробования
-Уменьшение размера пятна опробования
EnterКопирование в буфер 16-ричного представления среднего значения цвета

 При выходе программа записывает свои текущие установки в файл Pipette.ini (находящийся в одном каталоге с программой):

  1. Top, Left, Height, Width = расположение и размеры окна;
  2. Zoom = степень увеличения лупы;
  3. Size = размер пятна опробования;
  4. Frame = отображение пятна опробования (0 – не отображается, 1 – отображается);
  5. Round = форма пятна опробования (0 – квадратная, 1 – круглая);
  6. Color = номер системы цветовых координат (0 – RGB, 1 – CIE L*a*b*, 2 – CIE L*C*H*);
  7. RGB = название файла с параметрами цветового RGB-пространства (для WEB – sRGB.par);
  8. Lab = название стандартного источника света для абсолютной привязки пространства CIE L*a*b*. Как правило (в том числе и в Adobe PhotoShop), принято использовать D50;
  9. Grad = учёт цветового градиента при вычислении «шумов» (0 – не учитывать, считать методом «ближайших соседей», 1 – учитывать, вычислять наклонные базовые плоскости).

Известные проблемы

 «Известные проблемы» – это, собственно, не ошибки в программе, а до сих пор сохраняющаяся возможная недоработка. Если Вы решите «пройтись пипеткой» по изображению, загруженному в Adobe PhotoShop (или любое другое приложение, поддерживающее цветовые профили устройств), то обнаружите, что показываются совсем не те значения цветов, которые показывает программа аналогичным инструментом. Дело в том, что Adobe PhotoShop сообщает те значения цветов, которые были записаны в файле (и затем переведены в рабочее цветовое пространство), а для вывода на экран преобразует цвета в соответствии с цветовым профилем монитора. Вместе с тем, программа Pipette берёт цвета с уже преобразованного изображения, подготовленного к показу на экране. Честно говоря, я пока что не уверен, что буду исправлять эту ситуацию…

 Кроме того, я тут поместил и ответы на пару возможных вопросов:

Q. Я запускаю программу, а она всё время ругается на отсутствие каких-то файлов и не показывает никаких «Лабов», только RGB и квадратную рамку!
A. Возможно, что Вы перетащили на «Рабочий стол» саму программу вместо того, чтобы создать для неё «ярлык» – вот она и не находит своих файлов с необходимыми для работы параметрами.

Q. Программа то реагирует на нажатия клавиш «F»,«G» и «D», то не реагирует!
A. При использовании клавиатуры не забывайте делать активным окно «Пипетки» (например, с помощью «Alt-Tab»).

 Если Вы обнаружите что-то ещё очень нехорошее в её поведении, то сообщите, пожалуйста, мне об этом письмом на адрес: doliva@inbox.ru


Благодарности

 Программа написана в Delphi 7.0, в качестве отправной точки взят проект удобной экранной лупы, широко распространённый на сайтах по Delphi-программированию (правда, чаще встречаются варианты с одной неприятной ошибкой освобождения ресурсов). Немного поискав, я, вроде, наткнулся и на первоисточник (лежащий вот тут), его автор из Хорватии – Zarko Gajic (gzarko@sf.hr).
 Хочу особо поблагодарить Евгения Фёдорова (aka Genewww.genesdigest.com, macroclub.ru) за ценные предложения по функциональности программы, а также за её тестирование.

Дмитрий Доливо-Добровольский (aka Dima DD)
Санкт-Петербург, январь 2008 г.

Обсуждение программы на форуме

2005-2009 © Клуб любителей макро-
съёмки и макрофотографии
Работает на системе управления
сайтом CMS Cubesystem
На главную / Карта сайта / Поиск по сайту
/ Полезные ссылки / О МакроКлубе