2016-06-15 8 views
0

Python noob이 도움이 필요합니다! 누군가 루프를 사용하여 코드를 다시 작성하는 방법을 보여줄 수 있습니까? 몇 가지 구문을 시도했지만 작동하지 않았습니다! 이미지를 파이썬을 사용하여 루프로 바꿈 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])