1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# Deal with .seq format for video sequence # Author: Kaij # The .seq file is combined with images, # so I split the file into several images with the image prefix # "\xFF\xD8\xFF\xE0\x00\x10\x4A\x46\x49\x46". import
os.path
import
fnmatch
import
shutil
def
open_save( file ,savepath):
# read .seq file, and save the images into the savepath
f =
open ( file , ‘rb‘ )
string =
str (f.read())
splitstring =
"\xFF\xD8\xFF\xE0\x00\x10\x4A\x46\x49\x46"
# split .seq file into segment with the image prefix
strlist = string.split(splitstring)
f.close()
count =
0
# delete the image folder path if it exists
if
os.path.exists(savepath):
shutil.rmtree(savepath)
# create the image folder path
if
not os.path.exists(savepath):
os.mkdir(savepath)
# deal with file segment, every segment is an image except the first one
for
img in
strlist:
filename =
str (count) + ‘.jpg‘
filenamewithpath = os.path.join(savepath, filename)
# abandon the first one, which is filled with .seq header
if
count > 0 :
i = open (filenamewithpath, ‘wb+‘ )
i.write(splitstring)
i.write(img)
i.close()
count + =
1
if __name__ = = "__main__" :
rootdir =
"D:\\Data\\feifei"
# walk in the rootdir, take down the .seq filename and filepath
for
parent, dirnames, filenames in
os.walk(rootdir):
for
filename in
filenames:
# check .seq file with suffix
if
fnmatch.fnmatch(filename, ‘*.seq‘ ):
# take down the filename with path of .seq file
thefilename =
os.path.join(parent, filename)
# create the image folder by combining .seq file path with .seq filename
thesavepath =
parent + ‘\\‘+filename.split(‘ .‘)[ 0 ]
print
"Filename=" +
thefilename
print
"Savepath=" +
thesavepath
open_save(thefilename,thesavepath)
|
先贴出代码,最近做实验要用到加州理工的行人数据库,下载一看,是把图像按照二进制数据形式存储为.seq文件,没办法,找到一个哥们写的用python处理seq文件,将数据转换为.jpg图像。代码直接可用,只需要把文件搜索目录“rootdir”改为你自己文件的目录就OK了