4. Первичный анализ, построение планов и гистограмм. Для проведения выделения необходимо получить информацию о точках изображения, их яркости, насыщенности, цветности. Для этого строятся r, g, b – планы, производится преобразование изображения из rgb – представления в hsb, строятся гистограммы цветности, насыщенности и яркости. Эти данные активно используются на последующих этапах.
5. Выделение волокон. На данном этапе на основе построенных ранее гистограмм осуществляется отделение волокон от фона изображения. Выделение осуществляется под контролем оператора в несколько этапов пока не будет достигнуто максимальное соответствие выделенных волокон реальному изображению.
6. Поиск объектов заданного цвета. Поиск волокон задаваемого оператором цвета производится в результате анализ полученного при выделении волокон изображения. При этом задается цвет волокна и погрешность, с которой следует определять цвет.
7. Идентификация волокон. При обнаружении текстильных волокон заданного цвета на исходном изображении производится идентификация волокон, собранных на самом первом этапе различными химическими, оптическими и другими методами. На данном этапе используется специальное оборудование, реактивы и иные средства, используемые в криминалистической практике.
8. Оформление отчетных документов. Этот этап заключается в оформлении результатов о проведенных исследованиях. Данная информация передается в другие отделы следственных органов, которые на их основании строят дальнейшую розыскную и оперативную работу.
9. Сохранение отчетной информации в базе данных. Вся информация, полученная в результате исследований, хранится в базе данных для ведения отчетности и последующего использования в случае необходимости при повторном возбуждении дел, либо причастности улик к другим преступлениям либо правонарушениям. Для этого используются высоконадежные технологии с целью избежания потери информации.
2.2 Структура подсистемы выделения текстильных волокон
Структурная схема, представленная на чертеже РТДП 5.000.002. Данная схема описывает функционально законченные блоки программного модуля выделения текстильных волокон на изображении и состоит из следующих элементов:
1. Выбор изображения для обработки. Выбор изображения производится путем задания текущего каталога и поиска необходимой фотографии из множества найденных в текущем каталоге.
2. Выбор операции. Этот модуль управляет всей работой подсистемы выделения. Здесь осуществляется выбор производимых над исходным изображением манипуляций. После окончания выполнения выбранной процедуры управление вновь передается в данный модуль для проведения дальнейших преобразований.
3. Выделение волокон. Этот модуль осуществляет выделение всех пикселов, сходных по цвету с цветом фона. При этом на обрабатываемом изображении остаются только те объекты, которые отличались от фона.
4. Построение R, G, B – планов. Путем прохода по всему изображению создается 3 BMP – файла, содержащих информацию о красной, голубой и зеленой составляющей обрабатываемой картинки. Информация, сохраненная в таком виде, удобна для восприятия пользователем и позволяет сразу получить визуальное представление выходных данных без использования дополнительных программных средств.
5. Поиск волокон заданного цвета. На этом этапе осуществляется поиск волокон заданного цвета для их последующей идентификации. Поиск осуществляется путем прохода по всему изображению, на котором уже выделены все волокна и нахождению объектов с заданным цветом. Результаты работы сохраняются в отдельном файле чтобы улучшить визуальное восприятие информации оператором.
6. Сохранение изображения. На этом этапе происходит сохранение изображения в bmp-формате. В результате оператор получает полное визуальное представление о проделанных манипуляциях и в случае необходимости может повторить обработку с другими задаваемыми параметрами для достижения максимального качества преобразований.
7. Преобразование из RGB - представления в HSB. Данный модуль путем прохода по всем точкам изображения осуществляет для каждого пиксела определение его красной, голубой и зеленой составляющих, и на основе их анализа производит преобразование из RGB – представления в HSB. Полученные данные сохраняются для дальнейшего использования в файле с расширением hsb.
8. Построение гистограмм цветности, насыщенности и яркости. Этим модулем осуществляется построение указанных гистограмм, которые в дальнейшем используются для выделения волокон. Гистограммы сохраняются в bmp - формате и файлах отчета.
9. Сохранение результатов обработки в файлах отчета. Результаты преобразований сохраняются в текстовых файлах для ведения необходимой отчетности и дальнейшего использования при необходимости повторных исследований. Файлы отчета не занимают много места на дисковом пространстве и содержат всю необходимую информацию, полученную в ходе проведенных преобразований.
3. ФУНКЦИОНАЛЬНОЕ ПРОЕКТИРОВАНИЕ
3.1 Работа с BMP – файлами
В данном дипломном проекте в качестве исходных данных для обработки используются фотографии, сохраненные в формате BMP, 24 бит на пиксель, с изображенными на них текстильными волокнами различного типа и окраски.
Файлы формата bitmap [6], содержащие битовое изображение, начинаются со структуры BITMAPFILEHEADER табл.3.1. Эта структура описывает тип файла и его размер, а также смещение области битов изображения.
Таблица 3.1.
Заголовок файла BITMAPFILEHEADER
Смещение | Размер | Имя | Описание |
0 | 2 | BfType | Тип файла. Поле содержит значение 0x4D42 (текстовая строка «ВМ»). |
2 | 4 | BfSize | Размер файла в байтах. Это поле может содержать неправильное значение, так как в SDK для Windows 3.0 поле bfSize было описано неправильно (поле содержит размер файла в двойных словах). Обычно содержимое этого поля игнорируется, так как из-за ошибки в документации старые приложения устанавливали в этом поле неправильное значение. |
6 | 2 | BfReserved1 | Зарезервировано, должно быть равно нулю. |
8 | 2 | BfReserved2 | Зарезервировано, должно быть равно нулю. |
10 | 4 | BfOffBits | Смещение битов изображения от начала файла в байтах. |
Сразу после структуры BITMAPFILEHEADER в файле следует структура BITMAPNFOHEADER. Этот заголовок содержит описание изображения и, необязательно, карту цветов. Структура заголовка bitmap иногда рассматривается как BITMAPINFO с полями вплоть до карты цветов как BITMAPINFOFEADER табл. 3.2.
Таблица 3.2.
Заголовок файла BITMAPINFOHEADER
Смещение | Размер | Имя | Описание |
14 | 4 | BiSize | Размер этого заголовка в байтах, (всегда 40) |
18 | 4 | BiWidth | Ширина битового изображения в пикселях |
22 | 4 | BiHeight | Высота битового изображения в пикселях |
26 | 2 | BiPlanes | Число плоскостей изображения, должно быть 1 |
28 | 2 | BiBitCount | Количество бит на один пиксель. Может быть равно 1, 4, 8 или 24. |
30 | 4 | BiCompression | Тип сжатия. BI_RGB – сжатие не используется; BI_RLE4 – сжатие изображения, в которых для представления одного пикселя используется 4 бита; BI_RLE8 – сжатие изображения, в которых для представления пикселя используется 8 бит; |
34 | 4 | BiSizeImage | Размер сжатого изображения в байтах, или ноль |
38 | 4 | BiXPelsPerMeter | Горизонтальное разрешение, в пикселях / на метр |
42 | 4 | BiYPelsPerMeter | Вертикальное разрешение, в пикселях / на метр |
42 | 4 | BiYPelsPerMeter | Вертикальное разрешение, в пикселях / на метр |
46 | 4 | BiClrUsed | Количество используемых цветов, описание ниже |
50 | 4 | BiColorImportant | Число «важных» цветов |
54 | 4*N | BmiColors | Карты цветов |
Поле biSizeImage может быть (и обычно бывает) нулем, если данные несжатые.
Изображения, использующие 1, 4 или 8 бит на пиксель должны иметь карту цветов. Размер карты цветов – обычно 2, 16 или 256 элементов данных соответственно, но может быть меньше, если изображение не нуждается в полном комплекте цветов. Если поле biClrUsed – ненулевое, оно содержит количество используемых цветов, которое также представляет собой число элементов данных в карте цветов. Если это поле – нулевое, карта цветов имеет полный размер. Для 24-битных изображений карты цветов отсутствуют, и изображение содержит непосредственные RGB цвета. Поле biClrUsed может быть ненулевое для создания таблицы цветов фиксированного размера.
Поскольку возможно, что устройство отображения не будет иметь столько доступных цветов, сколько требуется для изображения, элементы данных в карте цветов должны начинаться с наиболее важных цветов. Поле biClrImportant, если оно ненулевое, сообщает, сколько цветов важно для хорошего воспроизведения изображения.
Элементы данных карты цветов содержат четыре байта табл. 3.3.
Таблица 3.3.
Смещение | Имя | Описание |
0 | RgbBlue | Значение синего для элемента карты цветов |
1 | RgbGreen | Значение зеленого для элемента карты цветов |
2 | RgbRed | Значение красного для элемента карты цветов |
3 | RgbReserved | Ноль |
Данные bitmap следуют сразу за картой цветов. Данные могут быть несжатые, либо же для 4- и 8-битных изображений может использоваться схема сжатия RLE.
Логически биты (и физически, при отсутствии сжатия) сохраняются построчно. Каждая строка дополняется нулевыми байтами до 4-байтовой границы. Строки сохраняются в порядке снизу вверх.
В bitmap с одним битом на пиксель каждый пиксель – единственный бит, биты упаковываются по восемь в байт. Старший бит в байте – самый левый пиксель.