python里res有什么用_python多图拼接并利用resnet提取特征

代码功能:

1、将多张图拼接成一张大图;

2、基于resnet提取大图的特征。

import torch

import torch.nn as nn

from torchvision import models, transforms

from torch.autograd import Variable

import numpy as np

from PIL import Image

from os import listdir

#resnet50提取图像特征

transform1 = transforms.Compose([

transforms.Scale(256),

transforms.CenterCrop(224),

transforms.ToTensor()])

resnet50_feature_extractor = models.resnet50(pretrained = True)

resnet50_feature_extractor.fc = nn.Linear(2048, 2048)

torch.nn.init.eye(resnet50_feature_extractor.fc.weight)

for param in resnet50_feature_extractor.parameters():

param.requires_grad = False

images = [Image.open(fn) for fn in listdir() if fn.endswith('.png')]

#多图拼接成一张长图

if len(images)>0:

width,height=images[0].size

for image in images:

w,h = image.size

if w>width:width=w

if h>height: height=h

longImg = Image.new(images[0].mode,(width,height*len(images)))

for i,im in enumerate(images):

longImg.paste(im,box=(0,i*height))#拼接

#长图向量化

imgarr = np.array(longImg)

if imgarr.shape[2] == 4: #四通道转为三通道

img1 = img.convert("RGB")

#img = Image.fromarray(img.astype('uint8')).convert('RGB')

img2 = transform1(img1)

x = Variable(torch.unsqueeze(img2, dim=0).float(), requires_grad=False)

y = resnet50_feature_extractor(x)

y = y.data.numpy()

print (y.shape)

标签:extractor,resnet50,python,torch,resnet,多图,transforms,images,import

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值