Научная статья на тему 'Библиотека OpenCV и ее использование в задачах цитофотометрии'

Библиотека OpenCV и ее использование в задачах цитофотометрии Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
2738
476
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМПЬЮТЕРНОЕ ЗРЕНИЕ / ЦИТОФОТОМЕТРИЯ / ЦИФРОВАЯ КАМЕРА / OPENCV / QUANTITATIVE CYTOPHOTOMETRY / COMPUTER VISION / DIGITAL CAMERA

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Конев Александр Александрович, Пальчикова Ирина Георгиевна

Специализированная программа ImgCyto, выполняющая оптико-структурный анализ микроизображений клеточных ядер, разработана с использованием библиотеки компьютерного зрения OpenCV. Обосновывается использование библиотеки OpenCV для данного класса задач, и описываются ее функции и возможности.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Конев Александр Александрович, Пальчикова Ирина Георгиевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE OPENCV LIBRARY AND ITS USING ON CYTOPHOTOMETRY TASKS

Specialized program ImgCyto for the optical structural analysis of the cell nuclei images is elaborated. OpenCV library of computer vision is used in the program. The usage of OpenCV for this class of tasks is substantiated.

Текст научной работы на тему «Библиотека OpenCV и ее использование в задачах цитофотометрии»

УДК 004.932.2

БИБЛИОТЕКА OPENCV И ЕЕ ИСПОЛЬЗОВАНИЕ В ЗАДАЧАХ ЦИТОФОТОМЕТРИИ

Александр Александрович Конев

Федеральное государственное бюджетное учреждение науки «Конструкторско-технологи-ческий институт научного приборостроения» СО РАН, 630058, Россия, г. Новосибирск, ул. Русская, 41, ведущий программист, тел. (383)306-62-20, e-mail: [email protected]

Ирина Георгиевна Пальчикова

Федеральное государственное бюджетное учреждение науки «Конструкторско-технологи-ческий институт научного приборостроения» СО РАН, 630058, Россия, г. Новосибирск, ул. Русская, 41, доктор технических наук, зав. лабораторией; Новосибирский государственный университет, 630090 г. Новосибирск, ул. Пирогова, 2, профессор, тел. 8(383)306-58-74, e-mail: [email protected]

Специализированная программа ImgCyto, выполняющая оптико-структурный анализ микроизображений клеточных ядер, разработана с использованием библиотеки компьютерного зрения OpenCV. Обосновывается использование библиотеки OpenCV для данного класса задач, и описываются ее функции и возможности.

Ключевые слова: OpenCV, компьютерное зрение, цитофотометрия, цифровая камера.

THE OPENCV LIBRARY AND ITS USING ON CYTOPHOTOMETRY TASKS

Alexander А. Konev

Technological Design Institute of Scientific Instrument Engineering, 630058, Russia, Novosibirsk, 41 Russkaya St., leading programmer, tel. (923)183-76-98, e-mail: [email protected]

Irina G. Palchikova

Technological Design Institute of Scientific Instrument Engineering SB RAS, 630058, Russia, Novosibirsk, 41 Russkaya str., Sc. D., Physical department; Novosibirsk State University, 630090, Russia, Novosibirsk, 2 Pirogova str., professor, tel. 8(383)306-58-74, e-mail: [email protected]

Specialized program ImgCyto for the optical structural analysis of the cell nuclei images is elaborated. OpenCV library of computer vision is used in the program. The usage of OpenCV for this class of tasks is substantiated.

Key words: OpenCV, quantitative cytophotometry, computer vision, digital camera.

Проблема автоматизации морфологического анализа цитологических проб решается путем количественного описания характеристик клеток и ядер, которые в настоящее время могут быть выполнены путем математической обработки цифрового изображения препарата [1]. Разработка специализированной программы ImgCyto, выполняющей оптико-структурный анализ микроизображений клеточных ядер и организовывающей базу данных собранных характеристик, является актуальной задачей. Программа предназначена для использования в клинических и биологических лабораториях в процессе проведения цитофо-тометрических анализов.

В данной работе обосновывается выбор языка программирования и инструментария. В статье дается характеристика библиотеки OpenCV, обсуждаются ее возможности, кратко описываются типы данных и набор основных функций.

Диалоговое окно программы ImgCyto показано на рис. 1. Программа обрабатывает серию монохромных изображений или цветных RGB изображений с глубиной 16 бит. Допустимо также и 8 битное изображение. Изображение содержит одну или несколько клеток или клеточных ядер.

Рис. 1. Диалоговое окно программы ImgCyto

Исходное микроизображение тестового препарата приведено на рис. 2 а, увеличенное изображение одного клеточного ядра - на рис. 2 б. При изготовлении тестовых препаратов использовались неделящиеся ядра клеток крови нескольких биологических видов. Препараты окрашивались специфичным в отношении ДНК реактивом Шиффа после гидролиза соляной кислотой, по методу Р.Фельгена. Это - один из основных методов подготовки препаратов для определения количества ДНК в клетке с помощью цитофотометрии [1].

Требуется выделить контуры этих объектов, и для каждого объекта вычислить его характеристики (площадь, периметр, коэффициент сжатия, оптическая плотность и пр.) Программа должна работать под операционной системой Windows.

При работе с изображением возникают потребности в различных представлениях изображения. Промежуточное представление изображения хранится в формате float32, что обеспечивает меньше потерь в изображении при различных операциях. Исходное цветное изображение для дальнейшей обработки переводится в монохромное. В программе по выбору допустим один из шести различных вариантов такого перевода.

а б

Рис. 2. Изображение тестового препарата крови: а - вид поля изображения, б - увеличенное изображение одного ядра с выделенным контуром

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

Библиотека OpenCV [2, 3, 4] содержит несколько сотен функций работы с изображениями, и подходит для использования в данной задаче. Это библиотека алгоритмов обработки изображений и численных алгоритмов общего назначения. При использовании библиотеки уменьшаются трудозатраты на написание и отладку программы.

Для обработки мультимедийных данных существует также Intel IPP (Integrated Performance Primitives) библиотека, которая по ряду характеристик превосходит библиотеку OpenCV. Но для использования этой библиотеки следует покупать не только саму библиотеку, но и Intel Parallel Studio. В противовес Intel IPP, библиотека OpenCV является программным продуктом с открытым кодом.

Выбор же между языком C/C++ и языком Java был сделан после их апробирования, анализа и написания пробных программ. В итоге, в качестве языка программирования был выбран язык Java. Выбор в пользу Java против C/C++ не так очевиден, но пробные программы, и в частности работа с диалоговыми окнами, показали некоторое удобство в пользу Java. К тому же, для использования OpenCV на Java, существует обертка (wrapper) JavaCV. И среда разработки Netbeans (наиболее популярная среда разработки для языка Java) хорошо подошла для использования JavaCV. Дополнительным преимуществом при выборе Java, является переносимость программ на другие платформы.

Изображение в OpenCV представлено структурой IplImage. Эта структура содержит как числовые значения пикселей, так и параметры изображения.

В табл. 1 и 2 приведены перечень параметров структуры IplImage и список других структур:

Таблица 1

Перечень параметров структуры IplImage

nChannels число каналов изображения

depth глубина в битах

width ширина изображения в пикселях

height высота изображения в пикселях

widthStep расстояние между соседними по вертикали точками изображения

Таблица 2

Список некоторых структур OpenCV

CvPoint точка структура из двух переменных (x,y)

CvSize размер структура из двух переменных (width,height)

CvRect прямоугольник структура из 4 переменных (x,y,width,height)

CvScalar скаляр 4 числа типа double

CvMat матрица

CvArr массив

Почти все функции OpenCV, у которых один или несколько параметров являются указателями на изображение, принимают в качестве параметра также матрицу или массив.

И еще интересные типы данных в OpenCV - это CvMemStorage и CvSeq. CvMemStorage (memory storage) - это хранилищае памяти в методах, для которых требуется хранить динамические объекты. Фактически, хранилище памяти -это связанный список блоков памяти. CvSeq (sequence) последовательность -это двухуровневый двусвязный список некоторых структур, хранящийся в CvMemStorage. Например, Контур в OpenCV представлен как список точек. Но на изображении присутствует несколько контуров, и второй уровень связей в последовательности - это список контуров.

Использование библиотеки OpenCV в полной мере себя оправдало. В частности, нет необходимости выяснять формат изображения на файле. Процедура чтение изображения с файла из библиотеки OpenCV читает достаточно большой набор форматов изображений.

Практически все действия с изображением поддержаны процедурами из библиотеки. Среди таких операций можно упомянуть: нормирование по освещенности, сглаживание изображения, нахождение контура, вычисление выпуклой оболочки контура.

Некоторые действия требуют непосредственного обращения к пикселям изображения. В частности, для сбора некоторых характеристик ядер, потребовалось пройтись в цикле по прямоугольнику, содержащего ядро, и для каждого пикселя, прежде определить, находится ли данный пиксель внутри контура, описывающего ядро или вне, а потом собрать характеристики.

Для проверки правильности работы программы ImgCyto использовались так же разработанные нами ранее [5] тестовые объекты (см. рис. 3). Тестовый объект представляет собой стеклянную пластинку, покрытую слоем хрома. Пропускание подложек варьируется в пределах 0,1 - 0,9. На поверхности хрома нанесены тестовые фигуры в виде кружков и квадратов. Характерные размеры кружков (квадратов) в пленках хрома: 3, 5, 7, 9, 11, 22 мкм. Размер объекта в целом: 2x3 мм.

Проводилась обработка изображений тестовых объектов с помощью программы ImgCy-Ш. На рис. 4 показан фрагмент обработанного изображения с выделенными контурами. Геометрические характеристики более чем 300 фигур, полученные в ходе обработки, были сравнены с паспортными характеристиками тестовых объектов. Паспортные данные формировались путем автоматизированного обмера фигур на исследовательском микроскопе DIALUX 20 ЕВ с без-иммерсионным микрообъективом планапохроматом 40х, ЫА 0,5. Программа выделила все фигуры на изображении. Используемый алгоритм выделения контуров, очевидно отличался от применяемого при составлении паспорта, и найденные размеры фигур на ~5 - 10% меньше паспортных, однако коэффициент вариации данных ImgCyto в 5 раз меньше, чем у паспортных данных.

Использование библиотеки OpenCV позволило в короткий срок создать программу ImgCyto, и полностью себя оправдало. Набор процедур библиотеки достаточно большой, и практически во всех случаях, когда возникала потребность в каких-либо действиях с изображением, находились соответствующие процедуры, обеспечивающие эти действия. Единственным исключением, когда в программе пришлось организовывать доступ к отдельному пикселю, это - вычисления оптической плотности внутри и вне контура.

Использование библиотеки серьезно Рис. 4. Изображение фрагмента сокращает время написания и отладки тестового объекта с выделенными программы. Это обусловлено тем, что контурами

Рис. 3. Фотография специального тестового объекта для цитофотометрии

.36 -37

-41

-г» 1 1-2» -2®

I \ I I

_19 -20 -21

процедуры библиотеки содержат зачастую достаточно сложные алгоритмы, и не тратится время на написание и отладку, и в библиотеке хорошо продуманы типы данных и благодаря этому хорошо согласованный интерфейс между процедурами и этот интерфейс достаточно удобен для программиста, который использует библиотеку.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Компьютерная цитофотометрия / И. Г. Пальчикова, Л. В. Омельянчук, Е. И. Пальчиков, Е. С. Смирнов, Н. В. Каманина // Оптико-информационные измерительные и лазерные технологии и системы: юбилейный сборник избранных трудов КТИ НП СО РАН. - Новосибирск: Академическое изд-во «Гео», 2012. - С. 375-398.

2. Gary Bradski, Adrian Kaehler. Learning OpenCV. Computer Vision with the OpenCV Library. // O'Reilly Media, Inc. - 2008

3. OpenCV шаг за шагом. Уроки OpenCV по-русски от Чеширского Кота. - режим доступа: http ://robocraft.ru/blog/computervision/264. html

4. OpenCV documentation. - режим доступа: http://docs.opencv.org/index.html

5. И. Г. Пальчикова, Л. В. Омельянчук, Е. С. Смирнов. О влиянии дифракции на результаты количественной цитофотометрии // Автометрия. - 2012. - Т. 48. - № 6. - С. 92-101.

©А. А. Конев, И. Г. Пальчикова, 2015

i Надоели баннеры? Вы всегда можете отключить рекламу.