永興ノート-OpenCV-7の基本的な導入ヒストグラム1

ここに画像を挿入説明

まず、画像のヒストグラムは何ですか。

ヒストグラム(ヒストグラム)は、また、質量分布としても知られている、統計レポートは等しくない高さのデータ系列は、縦ストライプまたはラインセグメントに分布する場合を示す図です。一般に、横軸、縦軸が分布を示し、データタイプを示します。
グラフィック画像ヒストグラムは、データ分布の正確な数値表現です。

  • ヒストグラムカラー:
    色ヒストグラムは、広く使用されている多くの画像検索システムにおける色特徴です。これは比率が全体画像に異なる色で占められることを説明するが、すなわち、画像またはオブジェクト内のオブジェクトを記載していない各色の空間的な位置のどの、気にしません。色ヒストグラムは難しい画像の自動セグメンテーションのために記載したものに特に適しています。
    • ヒストグラムは、(我々はより多くのを使用):
      単純に各画素値の数をカウントしています。例えば、88の数、66個の画素の画素値の数の画素の画素値の階調値。
      ここに画像を挿入説明
      ここに画像を挿入説明

第二には、なぜヒストグラムを使用する必要があります。

画像ヒストグラムは、その多くの利点のより小さなコスト、及び画像の平行移動、回転、スケーリング不変性を計算するため、広く、画像処理の様々な分野で使用されるしきい値グレー画像分割、色ベースの画像検索特定の画像内分類。

  • ヒストグラムは、小さな価格を計算するのはなぜ?
    グループに、カラム255のように、そのパケットのヒストグラムに変換したときの値からの処理が大きくなるが、例えば、1024×1024の画像は、これは、このグループ255、即ちに割り当て1024x124画素を重畳しているが、少ない画素は、分割されたRGBに追加作業を必要とせず、三色、単一ステップの計算(HSV除く)、これが唯一の非常に小さいコストこと、特定のアルゴリズム群255によって計算することができます。の!
  • 色ヒストグラムは、以下の意味を有する:
      ●色ヒストグラムは、画像強度分布の画素のグラフィック表現です。
      ●これは、各強度値を有する画素の数をカウントします。
  • 画像のヒストグラム方向の一般的なアプリケーション:
    • 图像分割:
      图像分割是图像识别的基础,对图像进行图像分割,将目标从背景区域中分离出,可以避免图像识别时在图像上进行盲目的搜索,大大提高图像识别的效率以及识别准确率。基于灰度直方图的阈值分割计算简单,适用于目标与背景分布于不同灰度范围的灰度图像,特别是遥感图像。
    • 图像检索:
      图像检索是指快速有效地从大规模图像数据库中检索出所需的图像,是目前一个非常重要又富有的挑战性的研究课题。颜色特征由于其直观性、计算代价较小等优点,在图像检索中扮演着重要角色,早期的图像检索算法也主要利用颜色特征,特别是颜色直方图。
    • 图像分类:
      图像分类任务主要是对一组图进行一系列自动处理,最终确定图形所属的类别。图像分类具有广泛的应用前景,是计算机视觉的难点问题。针对图像分类的算法众多,其中以基于bag-words模型的方法最为经典有效。该方法首先利用提取的颜色、形状等特征构建视觉词典,然后在图像上统计视觉词的直方图,最后利用视觉词直方图作为特征运用分类器进行分类决策。

三、绘制直方图:

1、Python图像可视化简单介绍:

#安装 matplotlib 
pip install matplotlib
#导入 
import matplotlib.pyplot as plt 
plt.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

点击打开:介绍教程

plt.title(label, fontdict=None, loc='center', pad=None, **kwargs)
  • label : 图像名称

2、绘制直方图:
hist = cv2.calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None)

  • images : 绘制直方图的图像
  • channels : 要计算的通道数,灰度图写[0]就行,彩色图B/G/R分别传入[0]/[1]/[2]。
  • mask : 图像掩膜 , 如果需要计算整个区域 则 填写 None
  • histSize : 子区段数目
  • ranges : 需要计算的像素范围
  • hist :传入的 hist 直方图
  • 累積:受信HISTがクリアされているかどうかを示すブール値。複数の画像が累積ヒストグラムことができるかどうかは明らかではありません。

戻り値:

  • HIST:ヒストグラムデータ
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("first.jpg",0) #以灰度模式读取图像
hist = cv2.calcHist([img],[0],None,[256],[0,256])
plt.plot(hist),plt.title("hist")
plt.show()
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()

ここに画像を挿入説明
ここに画像を挿入説明

HIST、ビン= np.histogram(ビン= 10、範囲=なし、ノルム=なし、重み=なし、密度=なし)
参数。

  • :画像ピクセルのアレイ
    効果ラヴェル()は、次元削減行列、または一次元の多次元配列であります
  • サブセクションの数:ビン
  • 範囲:一般的に算出される画素値の範囲、[0256]

戻り値:

  • HIST:ヒストグラムデータ
  • ビン:サブセグメント境界点の値の配列を返します
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("first.jpg",0) # 以灰度模式读取图像
hist , bins = np.histogram(img.ravel(),256,[0,256])
print(bins)
plt.plot(hist)
plt.title("hist")
plt.show()
cv2.imshow("img",img)

ここに画像を挿入説明
ここに画像を挿入説明

運動は7-1
画像のあなた自身の好みの色ヒストグラムを描きます。

あなたの答えをコメントアウト

公開された45元の記事 ウォン称賛28 ビュー10000 +

おすすめ

転載: blog.csdn.net/m0_43505377/article/details/103805865