[Python+OpenCV—matplotlib はグレースケール/カラー ヒストグラム Hist を描画]

1. Matplotlib.Pyplot の概要

1、Matplotlib

Matplotlib は、ユーザーがデータを簡単に視覚化し、さまざまな出力形式を提供できるようにする Python 用のプロット ライブラリです。

Matplotlib を使用すると、さまざまな静的、動的、対話型のグラフを描画できます。

Matplotlib は非常に強力な Python 描画ツールです。このツールを使用すると、多くのデータをより直観的にグラフの形式で表示できます。

Matplotlib は、折れ線グラフ、散布図、等高線図、棒グラフ、ヒストグラム、3D グラフィックス、さらにはグラフィック アニメーションなどを描画できます。

2、パイプロット

Pyplot は、MATLAB に似た描画 API を提供する Matplotlib のサブライブラリです。

Pyplot は一般的に使用される描画モジュールであり、ユーザーが 2D チャートを簡単に描画できるようにします。

Pyplot には描画関数の一連の関連関数が含まれており、各関数は現在の画像に何らかの変更を加えます。たとえば、画像をマークする、新しい画像を生成する、画像内に新しい描画領域を生成するなどです。

これを使用する場合、 import を使用して pyplot ライブラリをインポートし、エイリアス plt を設定できます。

import matplotlib.pyplot as plt

次に、それを使用してグラフィックを描画できます

2、灰色のヒストグラム

1. 主な機能

主に2つの機能を使います

(1) calcHist()

ここに画像の説明を挿入

(2) ヒスト()

ここに画像の説明を挿入
特定の使用法についてはあまり詳しく説明しません。ドキュメントを自分で参照するか、インターネットで偉大な神々からの説明を見つけることができます。

2. コードを実現する


import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread('Photos/1.bmp')
cv.imshow('Img', img)

gray_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('GrayImg', gray_img)

# Gray Histogram
gray_hist = cv.calcHist([gray_img], [0], None, [256], [0,256], False)
# cv.calcHist(images, channels, mask, histSize, ranges, accumulate)

plt.figure(1)
plt.title('Gray Histogram Contour')
plt.xlabel('gray level')
plt.ylabel('number of pixels')
plt.plot(gray_hist)
plt.xlim([0,256])

plt.figure(2)
plt.title('Gray Histogram')
plt.xlabel('gray level')
plt.ylabel('number of pixels')
plt.hist(gray_img.ravel(),256)

plt.show()

cv.waitKey(0)

3. 効果例

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

3. カラーヒストグラム

グレースケール ヒストグラムの原理と同様に、グラフィックスをループで出力するには、3 色の単純な走査が必要です。

1. コードを実現する


import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np

img = cv.imread('Photos/1.bmp')
cv.imshow('Img', img)

plt.figure()
plt.title('Color Histogram')
plt.xlabel('level')
plt.ylabel('number of pixels')
colors = ('b', 'g', 'r')
for i,item in enumerate(colors):
    hist = cv.calcHist([img], [i], None, [256], [0,256])
    plt.plot(hist, color=item)
    plt.xlim([0,256])

plt.show()

cv.waitKey(0)

2. 効果例

ここに画像の説明を挿入
この図から、3 つの色の異なるしきい値の発生頻度が直感的にわかります。

———————————————————————————————

最後に、私がよく参考にしているサイトを添付しておきますが、その内容はIT分野のほぼ全ての分野を網羅した非常に網羅的なもので、個人的には初心者向けのチュートリアルサイトとして非常に適していると思います。
https://www.runoob.com/

日々進歩できることを願っています!

おすすめ

転載: blog.csdn.net/LPYchengxuyuan/article/details/122092132