Detalles del procesamiento DDE
-
Separación de capas de fondo y de detalle: mediante filtros especiales, la imagen se separa en capas de fondo y de detalle. Las capas de fondo suelen contener información de baja frecuencia, mientras que las capas de detalle contienen información de alta frecuencia.
-
Mejora de escala de grises en la capa de fondo: mejore el contraste y la percepción visual de la capa de fondo aplicando un algoritmo de mejora de escala de grises adecuado a la capa de fondo.
-
Mejora de detalles y supresión de ruido en la capa de detalles: la capa de detalles contiene la información detallada de la imagen, y se pueden usar métodos de procesamiento no lineal, como algoritmos mejorados de nitidez o de mejora de bordes, para mejorar los detalles y suprimir el ruido.
-
Ajuste de rango dinámico: de acuerdo con el rango dinámico general de la imagen, ajuste y comprima el rango dinámico de la capa de fondo y la capa de detalles para asignar la información de la imagen original con un alto rango dinámico al rango de la salida de 8 bits imagen.
-
Imagen de salida compuesta: recomponga la capa de fondo mejorada y la capa de detalles en una imagen de salida de 8 bits para mostrar grandes diferencias dinámicas de temperatura y orientar la información local detallada.
Como se mencionó anteriormente, la tecnología DDE puede extraer y resaltar los detalles de la imagen a través de pasos como la separación de filtros, el procesamiento de la capa de fondo y la capa de detalles, y el ajuste del rango dinámico, y limitarlos a imágenes de salida de 8 bits para preservar grandes diferencias dinámicas de temperatura y detalles de las piezas de destino.
Separe las capas de fondo y detalle:
Mejora en escala de grises de la capa de fondo:
El efecto de los dos métodos.
Mejora de detalles en la capa de detalles
Comparación de resultados:
Aplica ecualización de histograma adaptable directamente a la imagen de entrada
Qué características de la imagen se aprenden mediante el aprendizaje profundo:
Características de borde: bordes, donde la escala de grises o los cambios de color
Característica de textura: es decir, la estructura local repetida en la imagen.
Características de la forma: incluido el contorno del objeto, las características geométricas de la forma
Características de color: características de color de diferentes espacios de color, incluida la distribución de color, el histograma de color
Características de la estructura espacial: la relación de la estructura espacial entre diferentes objetos, incluida la posición relativa, el tamaño, la dirección y otras características de los objetos.
Características jerárquicas: desde características locales de bajo nivel hasta características semánticas de alto nivel
Resumen personal:
Hice la mejora de datos DDE para la detección de objetivos infrarrojos
Personalmente, siento que el algoritmo DDE aumenta la discriminación entre el fondo y el primer plano, mejora el contraste de la imagen y, al mismo tiempo, las características y los rasgos de los bordes son muy claros.
Sin embargo, la ecualización del histograma se siente un poco demasiado expuesta, y las características y los rasgos de los bordes no están claros.
Después de la ecualización adaptativa del histograma, las características de los bordes y las características de los rasgos también son relativamente claras.
El algoritmo DDE parece más cómodo a simple vista que el histograma adaptativo, pero aún debe combinarse con el entrenamiento del modelo para ver si el algoritmo DDE es mejor que el histograma adaptativo.
código:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取输入图像
Mat inputImage = imread("/home/jason/work/01-img/infrared.png",IMREAD_GRAYSCALE);
imshow("input", inputImage);
// -------------------
// 执行DDE细节增强
// -----------------
// 第一步:滤波器分离低频和高频信息
Mat blurImg, detailImg;
GaussianBlur(inputImage, blurImg, Size(0, 0), 10);
detailImg = inputImage - blurImg;
imshow("blur", blurImg);
imshow("detai", detailImg);
// 第二步,对低频信息应用合适的灰度增强算法
Mat enhancedBlurImg, enhancedDetailImg;
// double min_val, max_val;// 拉伸对比度
// cv::minMaxLoc(blurImg, &min_val, &max_val);
// cv::convertScaleAbs(blurImg, enhancedBlurImg, 255.0/ (max_val - min_val), -255.0 * min_val/ (max_val - min_val));
cv::Ptr<cv::CLAHE> clahe = cv::createCLAHE(2.0, cv::Size(8,8)); // 自适应直方图均衡化,用于灰度增强
clahe->apply(blurImg, enhancedBlurImg);
imshow("enhancedBlurImg", enhancedBlurImg);
Mat enhancedBlurImg_blur;
cv::bilateralFilter(enhancedBlurImg, enhancedBlurImg_blur, 9, 75, 75); // 双边滤波,用于去除噪声
imshow("enhancedBlurImg-blur", enhancedBlurImg_blur);
// 第三步,对高频信息应用合适的细节增强和噪声抑制算法
cv::Ptr<cv::CLAHE> clahe_ = cv::createCLAHE(); // 自适应直方图均衡化(局部对比度增强),可增强细节
clahe_->setClipLimit(4.0);
clahe_->apply(detailImg, enhancedDetailImg);
imshow("enhancedDetailImg", enhancedDetailImg);
// Mat enhancedDetailImg_blur;
// cv::fastNlMeansDenoising(enhancedDetailImg, enhancedDetailImg_blur, 10, 10, 7); // NL-Means非局部均值去噪,可抑制噪音
// imshow("enhancedDetailImg_blur", enhancedDetailImg_blur);
// 第四步
// 合成最终的输出图像
Mat output;
cv::addWeighted(enhancedBlurImg, 0.3, enhancedDetailImg, 0.7, 0,output);
imshow("output", output);
// -------------
// 自适应直方图均衡化、直方图均衡化来对比DDE算法效果
// -----------
Mat out2;
cv::Ptr<cv::CLAHE> clahe2 = cv::createCLAHE(2.0, cv::Size(8,8)); // 自适应直方图均衡化,用于灰度增强
clahe2->apply(inputImage, out2);
imshow("自适应直方图均衡化", out2);
Mat out3;
cv::equalizeHist(inputImage, out3);
imshow("直方图均衡化", out3);
// 等待按键退出
waitKey(0);
return 0;
}