Path: csiph.com!usenet.pasdenom.info!dedibox.gegeweb.org!gegeweb.eu!nntpfeed.proxad.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.005 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'algorithm': 0.04; 'yet.': 0.04; 'insert': 0.05; 'subject:Python': 0.06; 'context': 0.07; 'assuming': 0.09; 'bindings': 0.09; 'subset': 0.09; 'python': 0.11; 'subject:Registration': 0.12; 'wrote': 0.14; 'appreciated!': 0.16; 'crop': 0.16; 'elements': 0.16; 'wrote:': 0.18; 'library': 0.18; 'trying': 0.19; "i've": 0.25; 'header:In-Reply-To:1': 0.27; 'function': 0.29; 'am,': 0.29; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'code': 0.31; 'url:wiki': 0.31; 'another.': 0.31; 'python"': 0.31; 'url:wikipedia': 0.31; 'probably': 0.32; 'thanks!': 0.32; "i'd": 0.34; 'problem': 0.35; 'advice': 0.35; 'common': 0.35; 'tool': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'done': 0.36; 'subject:?': 0.36; 'url:org': 0.36; 'searching': 0.37; 'two': 0.37; 'handle': 0.38; 'to:addr :python-list': 0.38; 'does': 0.39; 'to:addr:python.org': 0.39; 'even': 0.60; 'algorithms': 0.60; 'dave': 0.60; 'results.': 0.60; 'till': 0.61; 'email addr:gmail.com': 0.63; 'such': 0.63; 'fortunately': 0.84; 'angel': 0.91; 'difficult,': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=+Qs6gjuV4/Vx/oqaT1IF+T+CT8i5VlJPtpQ7tOpOM2I=; b=JDlFHXQpcw/NGiAatH6sVSNGGpGGbuf7dqu/wOwTzBZTANvVsZD+dJgrFGsIfkReIp 5mLaPVXd/UXydbTRtU3NwYIsYy+SO91zlJQGYB4TNkwSF/hWd2cKXVBHu1gNQ8rXRbZr QiOyX0qXuDC04UYsNbizNXuaryEcGEC/0RrVsImDnmMex9UE0EJ4556H4PKHc6ZgzlCp ohLWOhiZAxSb8AALUK1pyf0Br1u82EmUdwiFYxVFohq4Ifd+WlgE+bbaGaMYtJQYHMkv QuIxb/d0qe4rKC0QLVNXvoRxjSXLu+AdZ+vFswEHfklUoPffeUk6z1u8ksbk6GCeuGAB HqfA== X-Received: by 10.66.160.34 with SMTP id xh2mr18666549pab.109.1399218701552; Sun, 04 May 2014 08:51:41 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: From: Ian Kelly Date: Sun, 4 May 2014 09:51:00 -0600 Subject: Re: Python Image Registration and Cropping? To: Python Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 25 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1399218711 news.xs4all.nl 2937 [2001:888:2000:d::a6]:47372 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:70912 On Sun, May 4, 2014 at 7:24 AM, Dave Angel wrote: > mikejohnryan08@gmail.com Wrote in message: >> Hello, >> >> Is there a Python tool or function that can register two images together (line them up visually), and then crop them to the common overlap area? I'm assuming this can probably be done with Python Imaging Library but I'm not very familiar with it yet. >> >> Any help or advice is appreciated! >> >> Thanks! >> > > Without some context I'd call the problem intractable. I've done > such things using Photoshop to insert elements of one image into > another. But even describing an algorithm is difficult, never > mind trying to code it. Well, fortunately there are known algorithms already: http://en.wikipedia.org/wiki/Image_registration > If I had such a challenge, I'd probably use Pillow, but not till > I knew what subset I was solving. I don't think Pillow has any support for registration. I'd probably start by looking for Python bindings of a library that does handle it, like ITK. Searching for "itk python" turns up a number of results.