2016-09-13 7 views
0

도움이 필요합니다. Python Pillow 라이브러리로 두 이미지의 중첩 영역을 선택하고 잘라내려고합니다.베개로 자른 이미지 자르기

두 그림의 왼쪽 위 픽셀 좌표가 있습니다. 이것들을 통해 어느 것이 다른 것 위에 위치하는지 알 수 있습니다.

def function(img1, img2): 
    x1 = 223 #x coordinate of the first image 
    y1 = 197 #y coordinate of the first image 
    x2 = 255 #x coordinate of the second image 
    y2 = 197 #y coordinate of the second image 

    dX = x1 - x2 
    dY = y1 - y2 

    if y1 <= y2: #if the first image is above the other 
     upper = img1 
     lower = img2 
     flag = False 
    else: 
     upper = img2 
     lower = img1 
     flag = True 

    if dX <= 0: #if the lower image is on the left 
     box = (abs(dX), abs(dY), upper.size[0], upper.size[1]) 
     a = upper.crop(box) 
     box = (0, 0, upper.size[0] - abs(dX), upper.size[1] - abs(dY)) 
     b = lower.crop(box) 
    else: 
     box = (0, abs(dY), lower.size[0] - abs(dX), upper.size[1]) 
     a = upper.crop(box) 
     box = (abs(dX), 0, lower.size[0], upper.size[1] - abs(dY)) 
     b = lower.crop(box) 

    if flag: 
     return b,a #switch the two images again 
    else: 
     return a,b 

나는 결과 (그것은 학교 지정의) 잘못된 것을 확실히 알고 :

나는 인수로 두 개의 이미지를 복용하는 함수를 썼다. 도움 주셔서 감사합니다.

답변

0

우선, 한 사진이 다른 사진보다 (위의 Z 위치가되어서는 안됩니까?) 무엇을 의미하는지 알 수는 없지만이 사진을보십시오. How to make rect from the intersection of two?, 첫 번째 대답은 좋은 리드 일 수 있습니다. :)

+0

죄송합니다. 영어를 잘 쓸 수 없습니다. "위에서"는 중복을 의미했습니다. 나는 2 차원 적으로 작업하고 있지만 베개를 사용해야합니다. 또한 귀하의 답변 주셔서 감사하지만 두 개의 선택된 사각형의 두 반대 정점의 좌표가 필요합니다 –