Просмотр разницы изображений¶
В этой демонстрации показан распространенный пример сравнения изображений через просмотр различий за счёт наложения.
Здесь для изменения изображения используется функция imshowpair для поворота изображения.
using Images
using TestImages
# Загрузка тестового изображения
img = float.(testimage("cameraman"))
# поверните изображение на 4 градуса
img_r = imrotate(img, -pi/45, axes(img))
Функция mosaicview позволяет отобразить несколько изображений. Этот метод особенно полезен, когда у изображений разные размеры и цвета.
mosaicview(img, img_r; nrow=1, npad=20, fillvalue=colorant"white")
В некоторых случаях, когда различия между двумя изображениями относительно незначительны, простое визуальное сравнение может не дать желаемого результата.
Серые изображения в таком случае можно заполнить разными каналами RGB, создать представление RGB и после этого преобразовать в изображение в оттенках серого.
RGB_diffview = colorview(RGB, channelview(img), channelview(img_r), fill(0., size(img)))
Gray_diffview = Gray.(RGB_diffview)
Также два изображения можно сравнить через расчёт их разницы.
plain_diffview = @. img - img_r
mosaicview(plain_diffview, RGB_diffview;
nrow=1, npad=20, fillvalue=colorant"white")
Вывод¶
Мы изучили несколько способов визуального сравнения как через алгебраические операции, так и через визуальное сравнение. На рисунке выше показано, как выглядят эти сравнения в одном выходном изображении.