2012-05-18 12 views
13

तो इस परियोजना मैं पर काम कर रहा हूँ के लिए, मैं 2 फोटो है। इन दो फोटो, एक साथ लगाया गया जा करने के लिए ऊपर एक और तल पर एक की जरूरत है, और फिर आप पूरी तस्वीर देखने के लिए सक्षम हो जाएगा। ऐसा करने के लिए मुझे किस मॉड्यूल का उपयोग करना चाहिए?सिलाई तस्वीरें एक साथ

+1

क्या वे पैनोरमा की तरह ओवरलैप करते हैं? या क्या आपको सिर्फ दो छोटे बच्चों को एक-दूसरे के आगे रखकर एक बड़ी छवि बनाने की ज़रूरत है? – Leopd

उत्तर

19

python imaging library नाश्ते के लिए उस कार्य को खा जाते हैं।

विशेष रूप से tutorial देखें "काटना, चिपकाया जा रहा है और विलय छवियाँ" खंड कुछ प्रासंगिक मदद के लिए।

किसी न किसी रूपरेखा के लिए, Image.open के साथ दोनों छवियाँ डालते हैं, यह पता लगाना कितना बड़ा उत्पादन छवि size विशेषता और कुछ इसके अलावा का उपयोग करके किया जाएगा, Image.new साथ उत्पादन छवि बनाने और उसके बाद के लिए paste विधि का उपयोग पिछले दो मूल छवियों । में

+1

आप उस पर एक छोटा सा विस्तृत सकते हैं? मैं किस काम का उपयोग करूंगा? कोई सुझाव? –

+5

मैंने उत्तर में कुछ संकेत जोड़े। आम तौर पर मैं एक डेमो प्रोग्राम लिखूंगा लेकिन यह एक लंबा सप्ताह रहा है और एक अच्छा मादक पेय बेकन रहा है ;-) –

+0

बढ़िया! वह सही था। आपकी मदद के लिए धन्यवाद –

2

यह अजगर किताब के साथ जनवरी एरिक Solems कंप्यूटर दृष्टि से कुछ कोड है, आप शायद इसे संपादित अपने शीर्ष फिट करने के लिए कर सकते हैं/नीचे

def stitchImages(im1,im2): 
    '''Takes 2 PIL Images and returns a new image that 
    appends the two images side-by-side. ''' 

    # select the image with the fewest rows and fill in enough empty rows 
    rows1 = im1.shape[0]  
    rows2 = im2.shape[0] 

    if rows1 < rows2: 
     im1 = concatenate((im1,zeros((rows2-rows1,im1.shape[1]))), axis=0) 
    elif rows1 > rows2: 
     im2 = concatenate((im2,zeros((rows1-rows2,im2.shape[1]))), axis=0) 
    # if none of these cases they are equal, no filling needed. 

    return concatenate((im1,im2), axis=1) 
15

की जरूरत है यहाँ Pillow का उपयोग कर एक कोड नमूना है। उम्मीद है कि यह किसी की मदद करता है!

from PIL import Image 

def merge_images(file1, file2): 
    """Merge two images into one, displayed side by side 
    :param file1: path to first image file 
    :param file2: path to second image file 
    :return: the merged Image object 
    """ 
    image1 = Image.open(file1) 
    image2 = Image.open(file2) 

    (width1, height1) = image1.size 
    (width2, height2) = image2.size 

    result_width = width1 + width2 
    result_height = max(height1, height2) 

    result = Image.new('RGB', (result_width, result_height)) 
    result.paste(im=image1, box=(0, 0)) 
    result.paste(im=image2, box=(width1, 0)) 
    return result 
+3

यह कोड काम करता है, मैंने अभी इसका परीक्षण किया है। आप इस कोड का उपयोग करके फ़ाइल को सहेज सकते हैं -> merged = merge_images (file1, file2) merged.save (file_dest) – fedmich

+0

प्रश्न दूसरे के शीर्ष पर एक छवि के लिए था, जो परिणाम_विड्थ पर परिणाम_विड्थ पर केवल क्रियाओं को फिसल रहा है – Ywapom

संबंधित मुद्दे