2012-04-02 15 views
2

我想將兩張圖片(圖片A和圖片B--都是相同的大小)分割爲上下半幀(A-Up,A-Down,B-Up,B-Down) ),然後創建新的圖像:A-up + B-Down,反之亦然(意思是:我想要一個新的圖片,其上半部分實際上是A的上部,下半部分是B)。我用python編寫了下一個函數,使用PIL模塊:圖片的粘貼部分 - python,PIL模塊

import Image 
def SplitFunction(BMP): 
     im = Image.open(BMP) 
     [x,y]=im.size 
     box1=(0,0,x,y/2) 
     box2=(0,y/2+1,x,y) 
     region1 = im.crop(box1)  
     region2 = im.crop(box2) 
     region1.show() 
     region2.show() 
     return [region1,region2] 

path1='c:/movie2frames/BMPs1/stim/1.BMP' 
path2='c:/movie2frames/BMPs1/stim/334.BMP' 

[r1a,r2a]=SplitFunction(path1) 
[r1b,r2b]=SplitFunction(path2) 
#end program 

我不知道如何粘貼新零件。任何幫助將非常appriciated。

回答

1

如果您保留原始的全尺寸圖像並粘貼新的上半部分,這實際上更容易。

box_top = (0, 0, x, y/2) 
top_part = im1.crop(box_top) 
result = im2.copy() 
result.paste(top_part, box_top) 
+0

謝謝。我理解邏輯(這當然更容易),但由於某種原因,我在粘貼命令中得到一個圖像不匹配的錯誤[原本它們大小相同]。當然我加了im2.open(...)。有任何想法嗎? – user552231 2012-04-02 19:45:53

+0

@ user552231,確保它們是相同的模式。如有必要,使用convert函數轉換爲RGB模式。 – 2012-04-02 19:48:57

+0

謝謝。但這似乎不成問題。我想我是在我自己的這個bug ..我附加了新的功能[但我想這不是真的可讀:導入圖像 def SplitFunction(BMP1,BMP2): im1 = Image.open(BMP1) im2 = Image.open(BMP2) [x,y] = im1.size box_top =(0,0,x,y/2) top_part = im1.crop(box_top) result = im2.copy() result .paste(IM1,box_top) 返回結果 PATH1 = 'C:/movie2frames/BMPs1/stim/1.BMP' PATH2 = 'C:/movie2frames/BMPs1/stim/334.BMP' SplitFunction(PATH1 ,path2) – user552231 2012-04-02 20:07:40