pytroch ,cv2,PIL,读取图片以及通道转换

            img = Image.open(os.path.join('data',image_name))
            img = img.resize((112, 112), Image.BILINEAR)
            img = np.array(img, dtype=np.float32) # img:(h,w,3) RGB
            img = img[:, :, ::-1] # img: (h,w,3) BGR
            img -= np.array((104, 117, 123)) #  BGR
            img = img.transpose((2, 0, 1)) # img:(3,h,w)
            img = img.reshape((1, )+img.shape) #增加一维chw,nchw   
            torch.from_numpy


################################################
        image_path = "test.jpg"
        img_raw = cv2.imread(image_path, cv2.IMREAD_COLOR) #bgr
        #img_cv = cv2.cvtColor(img_cv, cv2.COLOR_BGR2RGB) #rgb
        img = np.float32(img_raw)
        im_height, im_width, _ = img.shape
        scale = torch.Tensor([img.shape[1], img.shape[0], img.shape[1], img.shape[0]])
        img -= (104, 117, 123)  #bgr
        img = img.transpose(2, 0, 1) #hwc chw
        img = torch.from_numpy(img).unsqueeze(0) #chw  to nchw


或者
img = cv2.imread("/home/shiyy/nas/all_workspace/pytorch_code/reid/InsightFace-v2/ijbc_align_imgs/1.jpg")  #
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = np.transpose(img, (2, 0, 1))  # hwc  to chw

img = torch.Tensor(img).cuda().unsqueeze(0)  # nchw rgb
img = img.div_(255).sub_(0.5).div_(0.5)  # 均值方差mean shape 1311,tensor
print(img)

在这里插入图片描述在这里插入图片描述

#-*-coding: UTF-8 -*-
import torch
from PIL import Image
from torchvision import transforms
import cv2
import numpy as np
device = torch.device('cuda')
transform=transforms.Compose([
            transforms.Resize(224),
            # transforms.CenterCrop(224),
            transforms.ToTensor(),
            transforms.Normalize(mean=[0.485,0.456,0.406],
                                 std=[0.229,0.224,0.225])
                            ])
def prediect():
    img_path ="868.jpg" 
    model = torch.load("model.pth") 
    model.eval()  #必须加评估
    device = torch.device('cuda')
    net=model
    net = net.cuda()#=net.to(device) 转移到CUDA上
    torch.no_grad()
    img=Image.open(img_path)
    img=transform(img).unsqueeze(0) #tensor nchw 0-1
    img_ = img.cuda()#img.to(device) 转移到CUDA上
    outputs = net(img_)
    _, predicted = torch.max(outputs, 1) #返回一维数组
    print (predicted.shape)  #tensor([0], device='cuda:0'))
    print (predicted[0].cpu()) #cuda tensor 变成 cpu tensor
    print (predicted[0].item()) #一个,tensor,值直接取得元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值