Как получить усиление и смещение для радиометрической коррекции из изображений темного и плоского поля?

1
9

Я новичок в этой области, но мне было интересно, как можно получить значения, необходимые для применения радиометрической коррекции к любому изображению, полученному с того же датчика, имеющего несколько изображений темного и плоского поля.

Из того, что я прочитал, темное поле — это значение смещения, а значение усиления — это плоское поле за вычетом смещения. Учитывая, что мне нужно значение из этих изображений, которое я могу применить к любому изображению, полученному датчиком, я предполагаю, что могу сделать среднее значение для значений усиления и смещения и использовать их. Кроме того, формула, которую я использую для получения радиометрической коррекции, находится здесь: https://www.nv5geospatialsoftware.com/docs/RadiometricCalibration.html

Это правильно?

Милен
Вопрос задан13 сентября 2024 г.

1 Ответ

2

Радиометрическая коррекция: Получение усиления и смещения

Радиометрическая коррекция – это важный шаг в обработке изображений, который позволяет компенсировать несовершенства датчика и получить более точные данные. Для ее выполнения используются изображения темного и плоского поля.

Темное поле (Dark Field) – это изображение, полученное с закрытым объективом камеры. Оно отражает внутренний шум датчика, возникающий из-за тепловых эффектов и электронного шума.

Плоское поле (Flat Field) – это изображение, полученное с равномерно освещенной поверхностью, например, белой доской. Оно отражает неравномерность отклика пикселей датчика, называемую “виньетированием”.

Получение усиления и смещения

  1. Считывание значений пикселей: Сначала необходимо получить среднее значение пикселей в каждом канале для изображений темного и плоского поля.
  2. Определение смещения: Среднее значение пикселей изображения темного поля используется в качестве смещения. Оно учитывает внутренний шум датчика.
  3. Определение усиления: Разница между средним значением пикселей в каждом канале изображения плоского поля и смещением дает усиление. Оно компенсирует неравномерность отклика пикселей датчика.

Пример кода (Python, OpenCV):

import cv2
import numpy as np

# Загрузка изображений
dark_image = cv2.imread("dark_field.jpg")
flat_image = cv2.imread("flat_field.jpg")

# Вычисление среднего значения пикселей
dark_mean = np.mean(dark_image, axis=(0, 1))
flat_mean = np.mean(flat_image, axis=(0, 1))

# Определение смещения и усиления
offset = dark_mean
gain = flat_mean - offset

# Вывод результатов
print("Смещение:", offset)
print("Усиление:", gain)

Применение усиления и смещения

Полученные значения усиления и смещения используются для коррекции входного изображения:

# Загрузка изображения для коррекции
input_image = cv2.imread("input_image.jpg")

# Применение коррекции
corrected_image = (input_image - offset) / gain

# Сохранение результата
cv2.imwrite("corrected_image.jpg", corrected_image)

Дополнительные замечания

  • Для достижения наилучших результатов изображения темного и плоского поля должны быть получены с использованием тех же настроек камеры, что и изображение, которое будет корректироваться.
  • Важно учитывать тип датчика и его характеристики при выборе метода радиометрической коррекции.
  • Использование более сложных алгоритмов, таких как гамма-коррекция, может улучшить качество результатов.

Заключение

Радиометрическая коррекция – это важный шаг, который помогает устранить несовершенства датчика и получить более точную информацию из изображений. Правильное применение темного и плоского поля является ключом к получению качественных результатов.

Болеслав
Ответ получен13 сентября 2024 г.

Ваш ответ

Загрузить файл.