2016-06-15 42 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])