当前位置:网站首页>Image,cv2读取图片的numpy数组的转换和尺寸resize变化
Image,cv2读取图片的numpy数组的转换和尺寸resize变化
2022-07-06 08:27:00 【MAR-Sky】
几种图片尺寸修改和参数总结
(from torchvision import transforms as T)
显示尺寸格式的不同
- Image类型和T进行resize的图片的size属性显示参数顺序是W、H
- cv2的显示的shape的显示参数顺序是H、W、C
- T.ToTensor()(img),将图片转换为tensor类型,显示是size()方法,例如,
import numpy as np
from PIL import Image
from torchvision import transforms as T
# import matplotlib.image as Img
img = Image.open('4.jpg')
img_tran = T.Resize((512,256))(img)
print(img_tran.size) #(256, 512)
print(np.array(img_tran).shape) # (512, 256, 3)
img_to = T.ToTensor()(img_tran)
img_to_array = np.array(img_to)
print(img_to.size()) #torch.Size([3, 512, 256])
print(img_to_array.shape) # (3, 512, 256)
- 可以看出size()方法显示的是将通道放在第一位了。
修改图片尺寸的函数参数顺序
-T.Resize((H,W))(img)
- img.resize((W,H))、cv2.resize(img_read,(W,H))
Image图片数据和numpy数据的相互转换
Image图片转换为numpy数据
np.array(img)
from PIL import Image
import numpy as np
img = Image.open('4.jpg')
img_array = np.array(img)
numpy数据转换为Image图片
Image.fromarray(img_arr.astype(‘uint8’))
Image.fromarray(np.uint8(img))
from PIL import Image
import numpy as np
img = Image.open('4.jpg')
img_array = np.array(img)
img_image = Image.fromarray(img_arr.astype('uint8'))
Image尺寸显示和numpy的shape显示问题
Image.size属性显示的是**宽、高**
img_array.shape属性,显示的是**高、宽、通道**
from PIL import Image
from torchvision import transforms as T
import numpy as np
img = Image.open('4.jpg')
img_array = np.array(img)
print(img.size) # (720, 1160)
print(img_arr.shape) # (1160, 720, 3)
plt.figure()
plt.subplot(1,3,1)
plt.imshow(img)
plt.subplot(1,3,2)
plt.imshow(img_array)
plt.show()
img.resize(w, h),T.Resize((h,w))(img),cv2.resize(img,(w,h))
功能:将读取后的图片尺寸的宽和高修改
import cv2
import matplotlib.image as Img
from torchvision import transforms as T
img = Image.open('4.jpg')
img_resize = img.resize((512,256))
img_tran = T.Resize((512,256))(img)
img_array = np.array(img)
img_read = cv2.imread('4.jpg')
img_cv2 = cv2.resize(img_read,(512,256))
print(img_resize.size) #(512, 256)
print(img_array.shape) #(1160, 720, 3)
print(img_tran.size) # (256, 512)
print(img_cv2.shape) # (256, 512, 3)
plt.figure()
plt.subplot(1,3,1)
plt.title('img_resize')
plt.imshow(img_resize)
plt.subplot(1,3,2)
plt.title('img_tran')
plt.imshow(img_tran)
plt.subplot(1,3,3)
plt.title('img_cv2')
plt.imshow(img_cv2)
plt.show()
边栏推荐
猜你喜欢
Configuring OSPF load sharing for Huawei devices
2022.02.13 - NC002. sort
MySQL learning record 11jdbcstatement object, SQL injection problem and Preparedstatement object
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Online yaml to CSV tool
IOT -- interpreting the four tier architecture of the Internet of things
【ROS】usb_cam相机标定
ROS编译 调用第三方动态库(xxx.so)
堆排序详解
ESP系列引脚说明图汇总
随机推荐
[2022 广东省赛M] 拉格朗日插值 (多元函数极值 分治NTT)
2022.02.13 - NC004. Print number of loops
[research materials] 2021 China online high growth white paper - Download attached
IOT -- interpreting the four tier architecture of the Internet of things
[cloud native topic -45]:kubesphere cloud Governance - Introduction and overall architecture of enterprise container platform based on kubernetes
logback1.3. X configuration details and Practice
Leetcode question brushing (5.31) string
PLT in Matplotlib tight_ layout()
egg. JS directory structure
[research materials] 2021 live broadcast annual data report of e-commerce - Download attached
【Nvidia开发板】常见问题集 (不定时更新)
synchronized 解决共享带来的问题
What is the use of entering the critical point? How to realize STM32 single chip microcomputer?
hcip--mpls
IoT -- 解读物联网四层架构
Upgrade tidb with tiup
Online yaml to CSV tool
tree树的精准查询
3. File operation 3-with
Verrouillage [MySQL]