Функции > Обработка изображений > Извлечение элемента > Пример. Преобразование с помощью евклидова кодового расстояния
Пример. Преобразование с помощью евклидова кодового расстояния
Используйте функцию distform, чтобы рассчитать преобразование евклидова кодового расстояния матрицы M, рассматривая пиксели со значением fg как пиксели переднего плана.
Сведения об использовании этого примера см. в разделе Сведения о примерах обработки изображений.
Матрица изображения
1. Определите матрицу изображения и примените к ней функцию distform.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Значение каждого выходного пиксела равняется расстоянию до ближайшего пиксела (значение 100) переднего плана:
Для входных пикселов переднего плана расстояние выходных данных равно нулю.
Для горизонтальных и вертикальных соседей расстояние равно 1
Для диагональных соседей расстояние равно квадратному корню из 2, или 1.414
Изображение с одним ненулевым пикселом
1. Определите изображение с одним ненулевым пикселом.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Примените функцию distform к изображению:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Расстояние монотонно возрастает по мере перемещения от пиксела переднего плана (центральный пиксел) во входном изображении.
Преобразование расстояния дает приблизительно евклидово кодовое расстояние. В приведенном выше примере можно увидеть, что точные выходные данные преобразования евклидова кодового расстояния для расположения матрицы (0,1) должны быть следующими:
Щелкните для копирования этого выражения
хотя в изображении выходных данных значение равно 5.243.
Изображение круглого объекта
1. Определите изображение окружности:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Используйте функцию scale, чтобы масштабировать окружность.
Щелкните для копирования этого выражения
3. Используйте функцию WRITEBMP, чтобы записать масштабированную окружность в файл.
Щелкните для копирования этого выражения
4. Примените функцию distform к окружности, масштабируйте ее и сохраните результаты в новом файле.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
5. Вставьте изображения их этих двух файлов и сравните результат.
(sc.bmp)
(scdist.bmp)
Значения расстояний равны нулю для всех точек в пределах окружности и монотонно возрастают по мере перемещения наружу, но они необязательно равны евклидову кодовому расстоянию; в противном случае выходные данные были бы радиально симметричны.
Два бинарных изображения одного объекта
1. Прочитайте изображение.
Щелкните для копирования этого выражения
2. Используйте функцию translate, чтобы создать преобразованные версии изображения и записать преобразованные изображения в файлы.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Вставьте изображения из трех файлов и сравните результат.
(flower.bmp)
(flower_d2.bmp)
(flower_d3.bmp)
4. Используйте функцию distform, чтобы рассчитать преобразование расстояния D1.
Щелкните для копирования этого выражения
5. Используйте функции mask и mean, чтобы создать маску для изображения преобразования расстояния с помощью изображений D2 и D3, а затем рассчитайте среднее для всего изображения. Это измерение расстояния между двумя изображениями.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Расстояние между D1 и D1 равно нулю, а расстояние между D1 и другими изображениями возрастает вместе со степенью перемещения.
6. Вычислите хаусдорфово отклонение
Расстояние Хаусдорфа определяется как максимум ближайшего расстояния между точками в двух наборах. Чтобы вычислить отклонение Хаусдорфа между двумя изображениями, используйте функцию max вместо функции mean.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Два изображения кромок
Характеристики обнаружений краев можно сравнить, вычисляя расстояние между изображениями двух кромок. Используйте среднее или максимальное значения маскированных расстояний в качестве измерения расстояния кромок.
1. Используйте функцию READ_IMAGE, чтобы прочитать файл изображения.
Щелкните для копирования этого выражения
2. Примените два детектора кромок canny и binarize к изображению и запишите результаты во внешние файлы.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Вставьте и визуально сравните два изображения.
(lena_e1.bmp)
(lena_e2.bmp)
4. Вычислите общее расстояние между гранями.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Было ли это полезно?