Пример. Преобразование с помощью евклидова кодового расстояния
Используйте функцию 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 к изображению и запишите результаты во внешние файлы.