「赤外線画像データ強調」DDE(Digital Detail Enhancement)アルゴリズム

DDE処理の詳細

  1. 背景レイヤーと詳細レイヤーの分離: 特別なフィルターを使用して、画像を背景レイヤーと詳細レイヤーに分離します。通常、背景レイヤーには低周波情報が含まれ、詳細レイヤーには高周波情報が含まれます。

  2. 背景レイヤーのグレースケール強化: 背景レイヤーに適切なグレースケール強化アルゴリズムを適用することにより、背景レイヤーのコントラストと視覚認識が向上します。

  3. ディテール レイヤーでのディテール強調とノイズ抑制: ディテール レイヤーには画像の詳細情報が含まれており、強化されたシャープニング アルゴリズムやエッジ強調アルゴリズムなどの非線形処理手法を使用して、ディテールを強調し、ノイズを抑制できます。

  4. ダイナミックレンジ調整:画像の全体的なダイナミックレンジに応じて、背景レイヤーとディテールレイヤーのダイナミックレンジを調整して圧縮し、高ダイナミックレンジを持つ元の画像情報を8ビット出力の範囲にマッピングします。画像。

  5. 複合出力イメージ: 強化された背景レイヤーと詳細レイヤーを 8 ビット出力イメージに再構成して、大きな動的温度差とターゲットの局所詳細情報を表示します。

前述したように、DDE テクノロジーは、フィルター分離、背景レイヤーと詳細レイヤーの処理、ダイナミック レンジ調整などの手順を通じて画像の詳細を抽出して強調表示し、大きな動的温度差を維持するために出力画像を 8 ビットの出力画像に制限します。対象パーツの詳細。

背景レイヤーと詳細レイヤーを分離します。

背景レイヤーのグレースケール拡張:

2 つの方法の効果

適応ヒストグラム等化

コントラストストレッチ

ディテールレイヤーのディテール強調

結果の比較:

DDE アルゴリズム

 ヒストグラム等化を入力画像に直接適用します

適応型ヒストグラム等化を入力画像に直接適用します。

適応型ヒストグラム等化(局所コントラスト強調)

ディープラーニングによって画像のどのような特徴が学習されますか?

エッジの特徴: グレースケールまたは色が変化するエッジ

テクスチャ特徴: 画像内の繰り返される局所構造

形状の特徴: オブジェクトの輪郭、形状の幾何学的特徴を含む

色の特徴: 色分布、色のヒストグラムを含む、さまざまな色空間の色の特徴

空間構造の特徴: オブジェクトの相対的な位置、サイズ、方向、その他の特性を含む、さまざまなオブジェクト間の空間構造の関係。

階層的特徴: 低レベルのローカル特徴から高レベルのセマンティック特徴まで

個人的な要約:

赤外線ターゲット検出用に DDE データ拡張を行いました

個人的には、DDE アルゴリズムにより背景と前景の識別が向上し、画像のコントラストが向上し、同時にエッジの特徴や特徴が非常に明確になると感じています。

ただし、ヒストグラムのイコライゼーションは少し露出が多すぎるように感じられ、エッジの特徴や特徴が明確ではありません。

適応ヒストグラム等化後、エッジ特徴と特徴特徴も比較的明確になります。

DDE アルゴリズムは、適応ヒストグラムよりも肉眼で快適に見えますが、DDE アルゴリズムが適応ヒストグラムよりも優れているかどうかを確認するには、モデル トレーニングと組み合わせる必要があります。

コード:

#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;
}

おすすめ

転載: blog.csdn.net/weixin_45824067/article/details/131752883