opencv と matplot の表示画像

これは画像です。画像名は ですflower.jpg ここに画像の説明を挿入します
。 画像処理中に画像を表示する必要がある場合は、opencv を使用して読み取りと表示を行うか、matplotlib を使用して読み取りと表示を行うことができます。ただし、opencv がカラー画像を読み取る方法は RGB 方法ではなく、デフォルトでは BGR 形式で読み取ります (これの歴史的な理由はカメラに関連しているようです。関連情報を確認してください)。

写真を読む

以下は、opencv と matplotlib が画像を読み取る方法です。

import cv2 as cv
import matplotlib.pyplot as plt
#opencv
imgA = cv.imread("flower.jpg",1)
# matplotlib
imgB = plt.imread("flower.jpg")

写真を表示する

同じモジュールを使用して読み取りと表示を行っても、効果は同じです。ここで言う違いは主にimgAとimgBの保存方法です。

opencv

ここに画像の説明を挿入します

マットプロットライブラリ

ここに画像の説明を挿入します

異なるモジュールを使用した表示

opencv が読み取り、matplot が表示されます。
ここに画像の説明を挿入します

比較した

opencv によって保存された imgA:
ここに画像の説明を挿入します
matplotlib によって保存された imgB:
ここに画像の説明を挿入します
imgA と imgB は両方とも 3 次元行列であることがわかります。最も内側の 3 つの要素は、私たちがよく「RGB」と呼ぶものですが、opencv と matplotlib は BGR を使用してその逆を行います。

matplitlibを使用して画像を表示する

opencv画像をRGB形式に変換して表示したい場合は、以下の方法を参考にしてください。

チャンネルの分割と再結合

import cv2 as cv
import matplotlib.pyplot as plt
	
img = cv.imread("flower.jpg", 1)
b, g, r = cv.split(img)    #通道分离
img = cv.merge([r, g, b])    #改序合并
plt.imshow(img)
plt.show()

結果は以下のようになります。

ここに画像の説明を挿入します

cvtColor関数の使用

import cv2 as cv
import matplotlib.pyplot as plt
	
img = cv.imread("flower.jpg", 1)
img = cv.cvtColor(img, cv.COLOR_BGR2RGB)  #颜色通道转换
plt.imshow(img)
plt.show()

結果は以下のようになります。
ここに画像の説明を挿入します

逆スライスアクセス

Numpy 配列にはスライスを使用してアクセスすることもでき、img も Numpy 配列です。

import cv2 as cv
import matplotlib.pyplot as plt

img = cv.imread("flower.jpg", 1)
img = img[:,:,::-1]    #色彩是第三个维度,::-1 表示矩阵的逆序全访问
plt.imshow(img)
plt.show()

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/m0_67313306/article/details/127524254