2016-06-15 25 views
0

Python noobにはヘルプが必要です!誰かが私のコードをループを使って書き直す方法を教えてもらえますか?いくつかの異なる構文を試しましたが、動作していないようです!Pythonを使用したループ内の画像タイリングOpenCV

img = cv2.imread("C://Users//user//Desktop//research//images//Underwater_Caustics//set1//set1_color_0001.png") 

    tile11=img[1:640, 1:360] 
    cv2.imwrite('tile11_underwater_caustic_set1_0001.png', tile11) 

    tile12=img[641:1280, 1:360] 
    cv2.imwrite('tile12_underwater_caustic_set1_0001.png', tile12) 

    tile13=img[1281:1920, 1:360] 
    cv2.imwrite('tile13_underwater_caustic_set1_0001.png', tile13) 

    tile21=img[1:640, 361:720] 
    cv2.imwrite('tile21_underwater_caustic_set1_0001.png', tile21) 

    tile22=img[641:1280, 361:720] 
    cv2.imwrite('tile22_underwater_caustic_set1_0001.png', tile22) 

    tile23=img[1281:1920, 361:720] 
    cv2.imwrite('tile23_underwater_caustic_set1_0001.png', tile23) 

    tile31=img[1:640, 721:1080] 
    cv2.imwrite('tile31_underwater_caustic_set1_0001.png', tile31) 

    tile32=img[641:1280, 721:1080] 
    cv2.imwrite('tile32_underwater_caustic_set1_0001.png', tile32) 

    tile33=img[1281:1920, 721:1080] 
    cv2.imwrite('tile33_underwater_caustic_set1_0001.png', tile33) 

ご覧のとおり、イメージは9個の等しいサイズのピースにカットされ、ループを使用して書き込む方法はありますか?

+0

は、あなたがしようとしているものを「構文」たちを表示します。 – rrauenza

答えて

2

これはあなたのコードのように同じ結果を生成しませんが、あなたにいくつかのアイデアを与えるだろう。

img = cv2.imread('sample.jpg') 
numrows, numcols = 4, 4 
height = int(img.shape[0]/numrows) 
width = int(img.shape[1]/numcols) 
for row in range(numrows): 
    for col in range(numcols): 
     y0 = row * height 
     y1 = y0 + height 
     x0 = col * width 
     x1 = x0 + width 
     cv2.imwrite('tile_%d%d.jpg' % (row, col), img[y0:y1, x0:x1]) 
関連する問題