img.shape可以的到尺寸
因为cv2读入后img是numpy array,
img.size 指的是图片的宽高通道的相乘后的数,
需要指定维度才能获得宽高通道,
比如,np.size(img, 0)指的是h的大小,
np.size(img, 1) w
np.size(img, 2) c 这个维度适用于彩色通道读入,单通道读入会报错
返回类型,img.shape返回tuple, np.size(img, 0)返回int类型数字。
如果是torch类型数据
img.shape和img.size()返回的内容含义是一样的,都是h, w, c。
返回类型,都是torch.size,用方括号index可以取某个维度的尺寸。
特别地,如果img.size(0)这样指定维度,返回int类型的数,跟numpy的一样。
import cv2
raw_img_pth = r"F:\vscode_files\project\segment_side\data\raw_img\segment_side\6236a959d839b.jpg"
img = cv2.imread(raw_img_pth, 0) # 单通道读入
print(img.shape) # h, w
import cv2
raw_img_pth = r"F:\vscode_files\project\segment_side\data\raw_img\segment_side\6236a959d839b.jpg"
img = cv2.imread(raw_img_pth, 1) # 彩色通道读入
print(img.shape) # h, w c
import numpy as np
print(type(img))
print(img.size)
print(np.size(img, 0))
import torch
img = torch.from_numpy(img)
print(img.shape)
print(img.size())
output:
(288, 384)
(288, 384, 3)
<class 'numpy.ndarray'>
331776
288
torch.Size([288, 384, 3])
torch.Size([288, 384, 3])
读取和拿尺寸写在一起:
import cv2
import numpy as np
raw_img_pth = r"F:\vscode_files\project\segment_side\data\raw_img\segment_side\6236a959d839b.jpg"
print(cv2.imread(raw_img_pth, 0).shape) # 单通道读入
output:
(288, 384)