В bitmap с 4 битами на пиксель для несжатого изображения в байт упакованы два пикселя, причем старший полубайт будет самым левым пикселем, и каждая строка дополняется нулями до 4-байтовой границы.
В bitmap изображениях с 8 битами на пиксель в несжатом виде один пиксель упакован в байт с дополнением каждой строки на границу 4 байт.
В bitmap изображениях с 24 битами на пиксель каждый пиксель – три байта, содержание значения синего, зеленого и красного в том же порядке. Каждая строка дополняется нулями до границы 4 байт. Именно этот формат данных используется в разрабатываемой в подсистеме выделения текстильных волокон.
3.2 Преобразование изображения из RGB – представления в HSB
Исходное изображение преобразуется из RGB – представления в HSB в случае выбора пунктов 2 либо 3 из главного меню с целью построения гистограмм цветности, яркости и насыщенности. Обрабатываемое изображение представляет собой картинку в формате BMP 24 бит. Это значит, что, согласно разделу 3.1, после заголовка файла, размером 54 байта, следует информация о строках изображения, где каждой точке изображения соответствуют 3 байта со значениями голубого, зеленого и красного цвета. Причем строки изображения выровнены по длине до границы 4 байт.
Таким образом, читая из исходного файла по 3 байта информацию о каждом пикселе можно получить значение яркости (Brightness).
В качестве значения яркости выбирается значение максимальной компоненты RGB – представления:
B = max(r, g, b),(3.1)
где r,g,b – значения компонент RGB – представления [5].
Гистограммы сохраняются в bmp – файлах с целью улучшения визуального восприятия информации, т.к. наглядность в этом случае гораздо выше, чем у текстового представления.
Насыщенность S определяется через максимальные и минимальные компоненты RGB – представления. Насыщенность определяется относительным количеством белого, который надо добавить к полностью насыщенному цвету. Уровень белого определяется минимальной компонентой RGB – представления. Остальные две компоненты окрашивают белую подложку [5].
S= 1 - min(r, g, b)/max(r, g, b).(3.2)
Гистограмма насыщенности, пример которой представлен на рис. 3.2, сохраняется в файле Sa_gist.bmp.
Для вычисления цветности определяются сектора цветового круга, в которые данный цвет попадает. Цвет определяется большей по уровню компонентой RGB – представления. Сначала вычитается уровень белого – цвет приводится к насыщенному виду.
{r’, g’, b’} = {r - min, g - min, b - min}.(3.3)
Остается 2 ненулевых компоненты, возможные варианты соотношений между ними и цветностью представлены в табл. 3.4.
Таблица 3.4.
СитуацияСекторУгол в секторе, jЦвет | r’ ³g’0° - 60°(g’/r’)60°j | g’ > r’60° - 120°(r’/g’)60°120° - j | g’ ³ b’120° - 180°(b’/g’)60°120° + j |
СитуацияСекторУгол в секторе, jЦвет | b’ > g’180° - 240°(g’/b’)60°240° - j | b’ ³ r’240° - 300°r’/b’)60°240° + j | r’ > b’300° - 0°(b’/r’)60°360° - j |
Блок – схема данного алгоритма представлена на чертеже РТДП 5.000.003.
Следует отметить, что насыщенность лежит в диапазоне 0…1, в то время как цветность располагается на окружности (или другой топологически эквивалентной кривой). Существует ряд случаев, когда определить значение цветности с достаточной точностью невозможно. Это случаи так называемого серого цвета от черного до белого. Эти случаи характеризуются низким уровнем насыщенности [5].
Гистограмма цветности рис.3.3 сохраняется в файле Hu_gist.bmp. Кроме того, гистограммы сохраняются в текстовых файлах name.txt либо name_.txtв зависимости от выбора пункта главного меню, где name.bmp – имя исходного файла для дальнейшей обработки иными программными средствами в случае необходимости. При построении гистограмм согласно пункту 2 меню учитываются все пикселы изображения. При выборе операции “Создание H,S,B планов для точек с большой (малой) насыщенностью” при построении гистограмм учитываются лишь те точки, значение насыщенности которых соответствует задаваемым пользователем параметрам.
Гистограмма цветности в дальнейшем используется для выделения волокон на исходном изображении.
Рис. 3.3. Гистограмма цветности изображения
В случае достаточной насыщенности цвет определяется однозначно. При обработке цветных изображений данный алгоритм цветоопределения показывает достаточно высокую производительность и не уступает более сложным методам определения цветности, основанным на использовании непрерывных функций и выводящим метрики формально.
Используя полученные значения для цветности, и сравнивая их с порогом цветности можно выделить на изображении окрашенные и неокрашенные участки. Таким образом, если участок на изображении является неокрашенным, то, следовательно, не имеет дальнейшего смысла обработка данного участка на предмет определения наличия на нем окрашенных текстильных волокон.
Информация о HSB – представлении исходного изображения хранится в одноименном файле с расширением *.hsb. Дальнейшие преобразования основаны на анализе содержимого данного файла. Здесь следует отметить, что для избежания ошибок следует предусмотреть наличие на диске »25 Мбайт свободного пространства в случае проведения полного анализа изображения, т.к. для проведения манипуляций с данными программа создает ряд графических и текстовых файлов.
3.3 Выделение волокон на исходном изображении
Операция выделения волокон позволяет окрасить одним цветом все точки, имеющие цвет фона и близкие к ним по цвету. Таким образом, в итоге на изображении должны остаться лишь те объекты, которые фону не принадлежали. Данная операция основана на обработке информации, хранящейся в построенной ранее гистограмме цветности.
Гистограмма цветности (Hue) содержит данные о количественном содержании пикселов каждого цвета на обрабатываемой картинке. Таким образом, можно используя гистограмму цветности получить информацию о том, объекты каких цветов содержатся на изображении. Объект, окрашенный заданным цветом, будет представлен на ней в виде пика с максимумом, соответствующим значению необходимого цвета либо близким к нему в случае если объект имеет цвет немного отличающийся от задаваемого. Т.к. на обрабатываемых изображениях изображено небольшое количество волокон на некотором фоне, то, следовательно, наибольшее количество пикселов на изображении будет окрашено именно цветом фона. Исходя из данных соображений, можно сделать вывод о том, что самый большой пик будет соответствовать именно цвету фона, а остальные – объектам, которые нам необходимо выделить для дальнейшей обработки. На рис. 3.4 видно, что самый большой пик соответствует фону, а остальные небольшие пики – текстильным волокнам и другим объектам.
Используя этот факт можно осуществить выделение объектов на исходных фотографиях. Для осуществления выделения необходимо экспериментально подобрав диапазон цвета, которому принадлежит фон, исключить этот диапазон из дальнейшего рассмотрения (приравнять к нулю количество точек заданного цвета). Диапазон цвета выбирается оператором таким образом, чтобы выделяемый объем изображения максимально соответствовал фону, и не терялась информация о содержащихся элементах.
Рис 3.4. Гистограмма цветности до выделения фона
Диапазон цвета выбирается оператором таким образом, чтобы выделяемый по его выбору цветом объем изображения максимально соответствовал фону, и не терялась информация о содержащихся элементах. На рис. 3.5 видно, что после выделения фона соответствующий пик исчез, а оставшиеся соответствуют объектам, которые содержались на изображении. Причем в конкретном случае, скорее всего на изображении остался один объект средней длины, для которого Hue» 62 и несколько мелких объектов различных цветов, которые, видимо, являются помехой фона. Для наглядности на исходном изображении пикселы принадлежащие фону можно окрасить в один цвет, например в белый. При этом на изображении останутся объекты, которые отличались по цвету от цвета фона. Объекты могут иметь самую разнообразную форму, т. к. исходя из специфики анализируемых изображений, на фотографиях имеют место не только объекты большой длины, но и мельчайшие фрагменты продуктов текстильного производства, пыль и прочие сопутствующие частицы. Кроме того, возможно проявление дефектов, полученных в результате изготовления фотографий.
Рис 3.5. Гистограмма цветности после выделения фона
Задача выделения на изображении волокон сводится к выбору точек, которые отличаются от фона по некоторому критерию. Одним из таких критериев может служить цвет точки. В этом случае, анализируя цвет пиксела изображения можно используя погрешность, которая задается оператором, выделить точки, цвет которых отличается от фона. Дальнейший анализ можно производить только для полученных элементов на изображении, т.е. не учитывая фон. Проведенное выделение не только упрощает весь дальнейший процесс обработки, но и может быть использовано для проведения экспертизы в случае, когда необходимо анализировать не волокна какого-либо конкретного цвета, а всю совокупность объектов изображения. Но не всегда выделение волокон происходит эффективно, если используется только анализ цвета волокна. В ряде случаев волокно может мало отличаться по цвету от фона на малую величину и при анализе только цветности это может привести к ошибке выделения волокна, т.е. оно не будет выделено. Поэтому необходимо анализировать насыщенность. Это позволит, например, на розовом фоне выделить слабо окрашенные красные элементы.