OpenCVの - equalizeHistヒストグラムイコライゼーション

ヒストグラム均等化のプロフィール

これは、グレースケール未処理の非常に狭い範囲に集中灰色を見ることができます。コントラスト画像の強さにこのリード線は強くありません。

ヒストグラム等化の目的は、一様に、それによってピクセルのグレー値のダイナミックレンジを増加させる、分散された全体的な効果の画像のコントラストを高めるために、全体階調範囲(0〜255)のヒストグラムで元の形式に変換されます。

 

 

ヒストグラム等化計算リスト

いいえ。

操作

階段と結果

1

図は、元のグレー値f(0≤L-1≤F)に記載されています

0 1 2 3 4 5 6 7
2 リスト元のヒストグラム(確率式) 0.02 0.05 0.09 0.12 0.14 0.2 0.22 0.16
3 元のGの累積ヒストグラム算出F(≤fおよび確率の階調値) 0.02 0.07 0.16 0.28 0.42 0.62 0.84 1.00
4 丸め= G(INT)[(1-L)・G F + 0.5] 0 0 1 2 3 4 6 7
5 対応関係を決定する(元の階調値 - >新たなグレー値) 0-> 0  1 - > 0  2-> 1  3 - > 2  4 - > 3  5-> 4  6-> 6  7> 7 
6 アップデートヒストグラム 0.07 0.09 0.12 0.14 0.2 0 0.22 0.16

 

equalizeHist機能:ヒストグラム均等化を実装

次いで、マッピングを得ることがイコライズ機能を実装階調ヒストグラム等化アルゴリズム、各グレー値のヒストグラムを正規化するために、グレーマップの各階調の累積分布要件と、それぞれに応じて原画像の各画素の階調値を補正します。

空イコライズ(InputArray SRC、OutputArray DST)。

  • SRC、入力画像、すなわちソース画像は、オブジェクトは、マットのクラスを満たすが、8ビット・シングルチャネル画像を必要とすることができます。
  • DST、出力、ソース画像は、同じサイズおよびタイプを有する必要があります。

 

コード例:

#include<opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main() {
    Mat src = imread("C:/Users/齐明洋/Desktop/1.jpg");
    imshow("src", src);

    Mat gray, dst;
    cvtColor(src, gray, COLOR_BGR2GRAY);
    imshow("gray", gray);
    equalizeHist(gray, dst);
    imshow("dst", dst);

    waitKey(0);
    
}

效果展示:

 

おすすめ

転載: www.cnblogs.com/bjxqmy/p/12341056.html