Если вы масштабируете разрешение теплового изображения с коэффициентом 8 и используете Bilinear Interpolation, вы должны получить более плавный, менее блочный результат.
При объединении спутниковых изображений различного разрешения (я говорю о спутниковых снимках, потому что это моя специальность), вы, как правило, использовать высокое разрешение изображение в качестве канала Lightness
или L
дать вам очевидное разрешение и детализацию в формах, потому что человеческий глаз хорош в обнаружении контраста, а затем использует изображения с низким разрешением, чтобы заполнить каналы Hue
и Saturation
, или a
и b
, чтобы дать вам цветные градации, которые вы надеетесь увидеть.
Итак, в конкретных терминах я бы рассмотрел преобразование RGB в Lab
или HSL
colourspace и сохранение канала L. Возьмите тепловое изображение и увеличьте его на 8, используя билинейную интерполяцию, и используйте результат как a
, или b
, или H
или S
, и, возможно, заполните оставшийся канал тем, который имеет наибольшее отклонение от RGB. Затем преобразуйте результат обратно в RGB для изображения с ложным цветом. Трудно сказать, не видя изображений или не зная, что вы надеетесь найти в них. Но в общих чертах это был бы мой подход. НТН.
Примечание: Учитывая, что a
из Lab
colourspace управления красный/зеленый отношения, я бы, наверное, попытаться положить термические данные в этом канале, так что, как правило, чтобы показать больше красного «горячее» тепловой канал.
Обновлено Ответ
Хорошо, теперь я могу видеть ваши изображения и у вас есть еще пару проблем ... во-первых, изображения не выровнены, или зарегистрированы, друг с другом, не собирается, чтобы помочь - попробуйте использовать штатив ;-) Во-вторых, ваше изображение RGB очень плохо разоблачено, поэтому на самом деле он не будет вносить столько подробностей, особенно в тени, в комбинированное изображение.
Так, во-первых, я использовал ImageMagick в командной строке, чтобы до размера теплового изображения, как это:
convert thermal.png -resize 640x480 thermal.png
Затем я использовал Photoshop, чтобы сделать сырой выравнивания/регистрации. Если вы хотите попробовать это, самый простой способ - поместить два изображения в отдельные слои того же документа и установить режим наложения верхнего слоя на Difference
. Затем используйте Move Tool
(ярлык v
), чтобы переместить верхнее изображение вокруг, пока экран не станет черным, что означает, что детали находятся друг на друге, а при вычитании они достигают нуля, то есть черный. Затем обрезайте, чтобы изображения были выровнены и выключили один слой и сохранили, затем снова включите этот слой, а другой слой - и снова сохраните.
Теперь, я использовал ImageMagick снова разделить эти два изображения в Lab
слоев:
convert bigthermalaligned.png -colorspace Lab -separate thermal.png
convert rgbaligned.png -colorspace Lab -separate rgb.png
, который дает мне
thermal-0.png => L channel
thermal-1.png => a channel
thermal-2.png => b channel
rgb-0.png => L channel
rgb-1.png => a channel
rgb-2.png => b channel
Теперь я могу взять L
канал изображения RGB и a
и b
каналов теплового изображения и их объединение:
convert rgba-0.png thermal-1.png thermal-2.png -normalize -set colorpsace lab -combine result.png
И вы получите это чудовище! Очевидно, вы можете играть с каналами и цветами, треногой и соответствующими экспозициями, но вы должны быть в состоянии увидеть некоторые детали изображения RGB - особенно занавески слева, свет, камеру на мобильном телефоне и этикетка на бутылке с водой - вошли в окончательное изображение.
Это не совсем понятно, что вы пытаетесь достичь. – torvin
Добавить образцы изображений, совпадают ли изображения? какие изображения представляют и для? какое масштабирование вы используете (ближайший сосед, билинейный, бикубический ...)? для чего используется результат? Какая смесь вам нужна? Как OP предлагает проблемы с производительностью, на какой языковой платформе и HW это будет работать? – Spektre
Я думаю, что нет другого выбора, кроме масштабирования! Возможно, вы могли бы попробовать различные методы интерполяции! –