目次
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()