2017-01-25 37 views
-1

ここには、執筆後のスクリプトがあります。marzipanoシーンを作成するためのスクリプト

コードはPython 2で作成され、実行するにはPython 2がインストールされている必要があります。

あなたはまた、ソフトウェアがレベルを完了することができるようにimagemagickが必要です。

フォルダを変更することはできますが、基本的にC:\ 360 \ images_folder \ project_name \ cubefotos * .jpg <の360ショットから6個のcubefotosを取ります。

あなたのPCは "subprocess.call" <を持つすべての "subprocess.Popenを" replaceing RAMとCPU使用トライためのコードを実行できない場合 - 引用符

# -*- coding: utf-8 -*- 
#Importing libraries 
import os, sys 
import glob 
import subprocess 
import shutil 
from datetime import datetime, date, time, timedelta 
from time import gmtime, strftime 

#store and print starting time. 
hi = datetime.now() 
print " starting time: " + str(hi) + "\n" 

project = 'name of your project' 
print 'C:\\360\\testing\\'+project+'\\tiles' 
try: 
    shutil.rmtree('C:\\360\\testing\\'+project+'\\tiles') 
except: 
    os.makedirs('C:\\360\\testing\\'+project+'\\tiles') 


#Creation of a list of every file in the directory 
data = glob.glob('C:\\360\\images_folder\\'+project+'\\cubefotos\\*.jpg') 


#Set the numbers of folders to be created 
le = len(data) 
llen = le // 6 

#list of faces 
innf = ['b', 'd', 'f', 'l', 'r', 'u'] 

#Start creating folders and subfolders 

#First loop: "Global loop" creates root folder for the total "scene" necessary 
for i in range(0, llen): 
    os.makedirs('C:\\360\\testing\\'+project+'\\tiles\\' + str(i)) 
    #Second loop: creates levels for the scenes 
    for l in range(1, 4): 

     os.makedirs(os.path.join('C:\\360\\testing\\'+project+'\\tiles', str(i), str(l))) 

     #Thrid loop: creates faces subfolders 
     for e in innf: 
      os.makedirs(os.path.join('C:\\360\\testing\\'+project+'\\tiles', str(i), str(l), str(e))) 

      #Conditionals: Creates necessary subfolders for each level 
      #Level one condition 
      if l == 1: 
       os.makedirs(os.path.join('C:\\360\\testing\\'+project+'\\tiles', str(i), str(l), str(e), str(0))) 
      #Level two condition 
      elif l == 2: 
       for f in range(0, 2): 
        os.makedirs(os.path.join('C:\\360\\testing\\'+project+'\\tiles', str(i), str(l) ,str(e), str(f))) 

      #Level three condition 
      elif l == 3: 
       for d in range(0, 4): 
        os.makedirs(os.path.join('C:\\360\\testing\\'+project+'\\tiles', str(i), str(l), str(e), str(d))) 

#Prints time it took to create folder structure 
subprocess.Popen("echo Folders were created in: " + str(datetime.now() - hi), shell=True) 
archivo = 0 
temp=0 
for i in range(0, llen): 
    print "······FOLDER······: " + str(i) 
    temp=i*6 
    #archivo=0 
    #Second loop: creates levels for the scenes 
    for l in range(1, 4): 
     subprocess.Popen("echo level " + str(l), shell=True) 
     #Create and organize images for level 1 
     for it in range(0, 6): 
      varin = data[i+it] 
      v2 = varin[0: 42] 
      archivo = it+temp 
      #print file 
      subprocess.Popen("echo file number: ", shell=True) 



      subprocess.Popen("echo face " + str(it), shell=True) 
      if int(it) == 0: 
       face ='f' 
      elif int(it) == 1: 
       face ='r' 
      elif int(it) == 2: 
       face ='b' 
      elif int(it) == 3: 
       face ='l' 
      elif int(it) == 4: 
       face ='u' 
      elif int(it) == 5: 
       face ='d' 


      #Normalized paths 
       #level 1 
      l1 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '1', face, '0', '0.jpg')) 
       #level 2 
      l20 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '2', face, '0', '0.jpg')) 
      l21 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '2', face, '0', '1.jpg')) 
      l22 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '2', face, '1', '0.jpg')) 
      l23 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '2', face, '1', '1.jpg')) 
       #level 3 
      l300 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '0', '0.jpg')) 
      l301 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '0', '1.jpg')) 
      l302 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '0', '2.jpg')) 
      l303 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '0', '3.jpg')) 
      l310 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '1', '0.jpg')) 
      l311 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '1', '1.jpg')) 
      l312 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '1', '2.jpg')) 
      l313 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '1', '3.jpg')) 
      l320 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '2', '0.jpg')) 
      l321 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '2', '1.jpg')) 
      l322 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '2', '2.jpg')) 
      l323 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '2', '3.jpg')) 
      l330 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '3', '0.jpg')) 
      l331 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '3', '1.jpg')) 
      l332 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '3', '2.jpg')) 
      l333 = os.path.normpath(os.path.join('C:\\360\\testing\\'+project+'\\tiles\\', str(i), '3', face, '3', '3.jpg')) 


      #check faces for their individual processing requirements 

      if it == 4: 
       #level 1 
       subprocess.Popen("convert " + data[archivo] + " -resize 25%% -rotate 180 " + str(l1) , shell=True) 

       #level2 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -rotate 180 -crop 512x512+0+0 " + str(l20) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -rotate 180 -crop 512x512+512+0 " + str(l21) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -rotate 180 -crop 512x512+0+512 " + str(l22) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -rotate 180 -crop 512x512+512+512 " + str(l23) , shell=True) 

       #level3 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+0+0 " + str(l300) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+512+0 " + str(l301) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1024+0 " + str(l302) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1536+0 " + str(l303) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+0+512 " + str(l310) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+512+512 " + str(l311) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1024+512 " + str(l312) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1536+512 " + str(l313) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+0+1024 " + str(l320) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+512+1024 " + str(l321) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1024+1024 " + str(l322) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1536+1024 " + str(l323) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+0+1536 " + str(l330) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+512+1536 " + str(l331) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1024+1536 " + str(l332) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1536+1536 " + str(l333) , shell=True) 


      if it == 5: 
       #level 1 
       subprocess.Popen("convert " + data[archivo] + " -resize 25%% -rotate 180 " + str(l1) , shell=True) 

       #level2 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -rotate 180 -crop 512x512+0+0 " + str(l20) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -rotate 180 -crop 512x512+512+0 " + str(l21) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -rotate 180 -crop 512x512+0+512 " + str(l22) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -rotate 180 -crop 512x512+512+512 " + str(l23) , shell=True) 

       #level3 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+0+0 " + str(l300) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+512+0 " + str(l301) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1024+0 " + str(l302) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1536+0 " + str(l303) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+0+512 " + str(l310) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+512+512 " + str(l311) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1024+512 " + str(l312) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1536+512 " + str(l313) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+0+1024 " + str(l320) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+512+1024 " + str(l321) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1024+1024 " + str(l322) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1536+1024 " + str(l323) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+0+1536 " + str(l330) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+512+1536 " + str(l331) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -rotate 180 -crop 512x512+1024+1536 " + str(l332) , shell=True) 
       subprocess.call("convert " + data[archivo] + " -rotate 180 -crop 512x512+1536+1536 " + str(l333) , shell=True) 


       #print time it takes to process each scene 
       subprocess.Popen("echo " + str(datetime.now() - hi), shell=True) 

      if it != 4 and it != 5: 
       #level 1 
       subprocess.Popen("convert " + data[archivo] + " -resize 25%% " + str(l1) , shell=True) 

       #level 2 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -crop 512x512+0+0 " + str(l20) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -crop 512x512+512+0 " + str(l21) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -crop 512x512+0+512 " + str(l22) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -resize 50%% -crop 512x512+512+512 " + str(l23) , shell=True) 

       #leve 3 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+0+0 " + str(l300) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+512+0 " + str(l301) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+1024+0 " + str(l302) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+1536+0 " + str(l303) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+0+512 " + str(l310) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+512+512 " + str(l311) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+1024+512 " + str(l312) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+1536+512 " + str(l313) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+0+1024 " + str(l320) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+512+1024 " + str(l321) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+1024+1024 " + str(l322) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+1536+1024 " + str(l323) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+0+1536 " + str(l330) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+512+1536 " + str(l331) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+1024+1536 " + str(l332) , shell=True) 
       subprocess.Popen("convert " + data[archivo] + " -crop 512x512+1536+1536 " + str(l333) , shell=True) 



#prints time it took the process to finish 
print "\n"+ "process finished in: " +str(datetime.now() - hi) 
+0

、 'Pythonのテキスト・ファイル・NAME'を。 Pythonのソースコードファイル名に拡張子 '.py'(' .txt'ではなく)を付けるのが規約です。 – cdarke

+0

それはどういう意味ですか?私はあなたがcmdの権利の.pyを呼び出すことについて私に話していることを理解していますか? – Thriskel

+0

'os.path.join'のパラメータにスラッシュを追加しないでください。 os.path.join( 'C:/ 360/Pruebas/tiles'、str(i)、str(l)、str(e)) 'を使用します。また、整数除算演算子は '//'である。 'llen = le // 6'。 – eryksun

答えて

0

だけで何に焦点を当てずにあなたが求めている:

サブプロセスのヘルプページ:

:パイソン2.7で Python 3.6

、あなたの電話を作りたいです

subprocess.Popen([application_path, arg1, arg2, ...]) 

あなたのpython 3を使用しているが、その後、あなたはその後、Popenの代わりにrunを使用する必要があります場合は、次のコマンドラインで

subprocess.run([application_path, arg1, arg2, ...]) 
+0

最後の行を次のように変更しました: 'subprocess.Popen( 'C:/ Program Files/ImageMagick-7.0.4-Q16/convert.exe'、str(it)、 '-resize 50%'、 'C​​: 'cmd 'のようなコマンドが' '例で表示されていることを示しています:エラー(例:Error:360/tiles /' + str(i)+ '/ 1 /' + face + '/ 0/0.jpg' '-resize 50%'は認識されません。 – Thriskel

+0

@Thriskel、 '-resize''、および' '50% ''は別々のパラメータです。あなたは、マシンがそれらを解析する方法ではなく、概念的な単位としてそれらを考えています。 convert.exeは理解できない単一の '-resize 50%'引数を見ます。また、コマンドラインでスラッシュを使用するパスを理解しているプログラムに依存することもできません。パスを正規化する必要があります。 'os.path.join( 'C:/ 360/tiles'、str(i)、 '1'、face、 '0'、 '0.jpg'))'。 – eryksun

+0

それはアクションを完了することができませんが、私のスクリプトが与えたのと同じ入力を手動で入力すると、それは動作します。その行には、ソフトウェアが正しく実行されないようなものがありますか? – Thriskel

関連する問題