python invalid literal for int_求助!运行出现错误“ValueError: invalid literal for int() ··...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

python新手,做毕设用到,相关程序如下

file_num = g_file_num + int(

filename[filename.find("_")+1:filename.find(".")])

这一行报错:

Traceback (most recent call last):

File "F:\MATLAB\preprocess_cad60.py", line 118, in

extract_images_and_matricize_keypoints()

File "F:\MATLAB\preprocess_cad60.py", line 68, in extract_images_and_matricize_keypoints

filename[filename.find("_")+1:filename.find(".")])

ValueError: invalid literal for int() with base 10: 'activityLabel'

就上面这部分。非常感谢大佬的帮助!!

如果需要看全部代码的话:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import os

import numpy as np

import pickle as pkl

import scipy.io as sio

import itertools

def remove_orientations_and_make_2d(joint_row):

"""As explained, this function removes all the orientation information and

makes each 3d pose 2d. It will also remove all the confidence bits from the

array"""

joint_row_without_orientations = []

for i in range(11):

del joint_row[:10]

joint_row_without_orientations.extend(joint_row[:3])

del joint_row[:4]

for i in range(4):

joint_row_without_orientations.extend(joint_row[:3])

del joint_row[:4]

joint_row_2d = []

joint_row_norm = []

for i in range(15):

x, y, z = joint_row_without_orientations[:3]

del joint_row_without_orientations[:3]

X = (156.8584456124928 + 0.0976862095248 * x - 0.0006444357104 * y

+ 0.0015715946682 * z)

Y = (125.5357201011431 + 0.0002153447766 * x - 0.1184874093530 * y

- 0.0022134485957 * z)

joint_row_2d.append([X,Y])

joint_row_norm.append([X/320, Y/240])#Normalized

return joint_row_2d, joint_row_norm

def extract_images_and_matricize_keypoints():

""" As the title suggests the following function will modify the title of

each file to match that of the folder in which it lies and then will also

matricize the keypoint file associated with it """

dat_dir = 'data/cad60_dataset'

try:

joints = pkl.load(open(dat_dir+'/joints.p', 'rb'))

except:

joints = []

mat_joints = []

subdir_list = []

for filename in os.listdir(dat_dir):

if os.path.isdir(dat_dir+'/'+filename):

subdir_list.append(filename)

print subdir_list

if not os.path.exists('data/cad60_dataset/images'):

os.mkdir('data/cad60_dataset/images')

g_file_num = 0

for subdir in subdir_list:

if not (subdir == 'images' or subdir == 'mark' or subdir == 'crop'

or subdir == 'joint'):

#Record the number of files (Depth OR RGB) in the folder

num_files_in_folder = int(len(os.listdir(dat_dir+'/'+subdir))/2)

print "Extracting files from dir: {}".format(subdir)

print "Number of files in the current folder:{}".format(

num_files_in_folder)

for filename in os.listdir(dat_dir+'/'+subdir):

file_num = g_file_num + int(

filename[filename.find("_")+1:filename.find(".")])

file_type = filename[0] #R(GB) or D

#Uncomment following line(and comment line below that one)

#if USING MULTIPLE DIRECTORIES from the CAD 60 dataset.

#os.rename(dat_dir+'/'+subdir+'/'+filename,

#dat_dir+'/images/'+subdir+file_num+'_'+file_type+'.jpg')

os.rename(dat_dir+'/'+subdir+'/'+filename,

dat_dir+'/images/'+str(file_num)+'_'+file_type+'.jpg')

print "Finished adding all files. Now extracting joint info"

with open(dat_dir+'/'+subdir+'.txt', 'rU') as txt_file:

lines_list = txt_file.read()

lines_list = lines_list.split('\n')[:-1]

for line in lines_list:

joint_row = line.split(',')[:-1]

if joint_row:

try:

joint_row[1:] = (

[float(joint_str) for joint_str in joint_row[1:]])

except ValueError:

print "[ERROR] Could not convert string to float"

print joint_row

return

joint_row_norm = list(joint_row)

joint_row[1:], joint_row_norm[1:] = (

remove_orientations_and_make_2d(joint_row[1:]))

#MATLAB Stuff

chain_mix = list(joint_row_norm)

chain_mix[0] = [g_file_num + int(chain_mix[0])]

chain = [item for sublist in chain_mix for item in sublist]

mat_joints.append(chain)

#Pickle Stuff

#joint_row[0] = subdir+joint_row[0]#UNCOMMENT if multiple

#directories of CAD60 dataset

joint_row[0] = str(chain_mix[0][0])#Since chain_mix[0] is a list

joints.append(joint_row)

else:

continue

print "Joint number is at {} = Number of files handled?".format(

chain_mix[0])

g_file_num += num_files_in_folder

os.rmdir(dat_dir+'/'+subdir)

print "Number of files handled: {}".format(g_file_num)

pkl.dump(joints, open(dat_dir+'/joints.p', 'wb'))

#sio.savemat(dat_dir+'/joints.mat', {'joints':mat_joints})#Store as mat

if __name__ == '__main__':

extract_images_and_matricize_keypoints()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值