OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
ヒストグラム - 1 : 計算、描画、解析 !!!

目的

  • ヒストグラムを求める
  • ヒストグラムをプロットする
  • 次の関数を学ぶ: cv.calcHist()

理論

では、ヒストグラムとは何だろうか。ヒストグラムは、画像の輝度分布の全体像を示すグラフまたはプロットと考えることができる。これは、X軸にピクセル値 (常にではないが0から255の範囲) を、Y軸に画像内の対応するピクセル数をとったプロットである。

これは画像を理解するための別の方法に過ぎない。画像のヒストグラムを見ることで、その画像のコントラスト、明るさ、輝度分布などについての直観が得られる。今日のほぼすべての画像処理ツールは、ヒストグラムに関する機能を備えている。以下は Cambridge in Colorのウェブサイト から引用した画像である。詳細についてはぜひそのサイトを訪れてほしい。

image

画像とそのヒストグラムが確認できる。(このヒストグラムはカラー画像ではなくグレースケール画像に対して描かれていることに注意。) ヒストグラムの左側の領域は画像内の暗いピクセルの量を、右側の領域は明るいピクセルの量を示す。ヒストグラムから、暗い領域が明るい領域より多く、中間調 (中間の範囲、たとえば127付近のピクセル値) の量が非常に少ないことが分かる。

ヒストグラムを求める

次の関数を使用する: cv.calcHist (image, channels, mask, hist, histSize, ranges, accumulate = false)

引数
image入力配列。すべて同じビット深度 cv.CV_8U、cv.CV_16U または cv.CV_32F を持ち、同じサイズでなければならない。それぞれは任意の数のチャンネルを持つことができる。
channelsヒストグラムの計算に使用する dims 個のチャンネルのリスト。
mask省略可能なマスク。行列が空でない場合、images[i] と同じサイズの8ビット配列でなければならない。マスクの非ゼロ要素は、ヒストグラムにカウントされる配列要素を示す。
hist出力ヒストグラム(cv.CV_32F 型)。密または疎の dims 次元配列となる。
histSize各次元のヒストグラムサイズの配列。
ranges各次元のヒストグラムビン境界からなる dims 個の配列の配列。
accumulate累積フラグ。設定されている場合、ヒストグラムは確保された直後にクリアされない。この機能により、複数の配列セットから単一のヒストグラムを計算したり、時間経過に伴ってヒストグラムを更新したりできる。

試してみよう