PIL.Image cv2 は画像を読み取り、cv2 plt は画像を表示します (詳細コードを含む)

目次

CV2

画像 cv2.imread を読み取る

画像を表示 cv2.imshow plt.imshow

コード

中国の道の写真を読む

cv2.resize

PIL.イメージ

画像の読み取り Image.open

画像を表示 plt.imshow

コード

CV2

画像 cv2.imread を読み取る

        cv2.imread(img_path)で読み込む画像形状はhwc、チャネル寸法はBGRタイプ

        cv2.cvtColor() または img[:,:,::-1] で RGB 型の画像に変換できます

        注: cv2.imread() は英語パスの画像のみを読み取ることができます

画像を表示 cv2.imshow plt.imshow

        cv2.imshow('name',img) ここで、name は表示する画像の名前、img は表示する画像で、BGRタイプの画像を通常に表示できます (cv2 で読み込んだ画像を直接表示でき、RGB 画像を表示します)色の混乱を引き起こす可能性があります)

        plt.imshow(img) はRGBタイプの画像を表示します。画像を表示するには plt.show() を追加します

コード

import cv2
import matplotlib.pyplot as plt
img_path='D:\man.png'  # 更改自己图片路径

"""法一"""
img1=cv2.imread(img_path)   
print(img1.shape)           # h w c(其中c维度为BGR形式)

cv2.imshow('img1',img1)     #展示BGR形式的图片
cv2.waitKey(0)
cv2.destroyAllWindows()

"""法二"""
img1=cv2.imread(img_path)  

# BGR->RGB的两种方式
img1=cv2.cvtColor(img1,cv2.COLOR_BGR2RGB)  
# img1=img1[:,:,::-1]    # 在维度通道倒序

# plt展示图片
plt.imshow(img1)
plt.show()  

中国の道の写真を読む

        cv2.imread() は英語のパスでのみ画像を読み取ることができます。中国語のパスを読み取る場合は、使用します

        img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), cv2.IMREAD_COLOR)

        まず numpy で fromfile を使用してファイルを読み取り、画像を int 型に従ってデータに読み取り、それを 1 次元配列に読み取り、次に
cv の imdecode で配列をデコードして画像を取得します (デコードされた画像はまだ残っています) BGRタイプ

最後のパラメータの意味:

        cv2.IMREAD_COLOR はカラー イメージを読み取ります。これは 1 と省略できます。

        cv2.IMREAD_GRAYSCALE: グレースケール モードで画像を読み込みます。これは 0 と省略できます。

        cv2.IMREAD_UNCHANGED: アルファ チャネル (透明度情報を含む) を含む完全なイメージを読み取ります。-1 と省略できます。

cv2.resize

        cv2.resize(img,(w,h)) サイズ変更後の新しいサイズは何ですか

import cv2

img_path='D:\man.png'  # 更改自己图片路径
img1=cv2.imread(img_path)
h,w,c=img1.shape

scale=0.5
img1=cv2.resize(img1,(int(scale*w),int(scale*h)))
cv2.imshow('img1',img1)     
cv2.waitKey(0)
cv2.destroyAllWindows()

PIL.イメージ

画像の読み取り Image.open

        Image.open(img_path) はピクチャを読み込み、読み込まれたピクチャの形状はwh

        PIL タイプの画像の場合、画像の幅と高さは img.width img.height で表示でき、画像の幅は img.size で表示できます。

        img= np.array (img) を通じて、画像の形状はhwcに変換されます。ここで、チャネルは RGB タイプです

画像を表示 plt.imshow

        plt を使用して RGB 画像を表示する

コード

import matplotlib.pyplot as plt
import PIL.Image as Image
import numpy as np

img_path='D:\man.png'

img2=Image.open(img_path)
print(img2.size)   # w h
print(img2.width)  # w
print(img2.height)  # h

img2=np.array(img2)
print(img2.shape)  # h w c(RGB)

# plt展示RGB图片
plt.imshow(img2)
plt.show()

おすすめ

転載: blog.csdn.net/m0_63077499/article/details/127897669