Пример. Выпуклая оболочка
Используйте функцию cnvxhull для поиска выпуклой оболочки пикселей со значением интенсивности переднего фона fg в матрице M. Выходные данные переводятся в двоичную форму, где 1 задается внутри выпуклой оболочки, а 0 - снаружи. Используемый алгоритм описан на странице 269 книги Digital Picture Processing (Обработка цифрового изображения) авторов A. Rosenfeld и A. C. Kak, 1982.
Оболочка ищется путем выбора P1 в качестве левой верхней точки набора пикселов в матрице M, а L1 — в качестве горизонтальной линии, проходящей через точку P1. Затем линия L1 поворачивается вокруг точки P1 до тех пор, пока не столкнется со значением fg в наборе пикселов. Полученная повернутая линия обозначается L2, выбирается точка P2 как наиболее удаленная от P1 вдоль L2; алгоритм повторяется до тех пор, пока Pn не будет равно P1. Объединение {P1, P2, ... , Pn-1} задает вершины выпуклой оболочки.
Сведения об использовании этого примера см. в разделе Сведения о примерах обработки изображений.
1. Определите входную матрицу.
Щелкните для копирования этого выражения
2. Вычислите выпуклую оболочку набора пикселов со значением переднего фона, равным 1.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Данная оболочка содержит все пикселы со значением 1 исходной матрицы и является наименьшим выпуклым набором пикселов.
3. Выберите значение переднего фона, равное 2, и пересчитайте выпуклую оболочку.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
4. Наложите бинарное изображение зернышка кукурузы с его выпуклой оболочкой, чтобы продемонстрировать пользу от оболочки при поиске контуров и пустот изображения.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
5. Найдите выпуклую оболочку из белых пикселов (1) в двоичном изображении, а затем вычтите изображение из оболочки, чтобы найти дефекты оболочки. Вместо непосредственного вычитания двоичное изображение и оболочка отмасштабированы таким образом, что область вне оболочки окрашена серым цветом, изображение — черным, а дефекты оболочки — белым.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
6. Отобразите изображения M, Mbin255 и Mdef одно за другим.
(corn1.bmp)
(mbin_255.bmp)
(mdef.bmp)
Пикселы вне оболочки окрашены серым цветом в M, изображение — черным Mbin55, а дефекты оболочки отображаются белым цветом в конечном изображении Mdef.
Было ли это полезно?