سؤال

ما هي الطريقة الجيدة لمحاذاة الصور معًا التي قد تحتوي على دورات مختلفة أو تعرضات مختلفة ، ولكن لديها نفس الخلفية أو غيرها من المرجع الثابت؟

يمكن لـ Adobe Photoshop القيام بذلك من خلال ميزة "photomerge".

كيف يمكنني القيام بهذا بشكل برمجي؟ هل هناك تطبيق مفتوح المصدر يفعله؟

هل كانت مفيدة؟

المحلول

تريد البحث عن image stitching أو image registration لأن هذه هي الأسماء التي تعرفها أيضًا. هذه مقال ويكيبيديا لديه بعض المعلومات المفيدة. لكنني أعرف فقط المكتبات التجارية التي تفعل ذلك ، وليس أيها مفتوحة المصدر.

الخطوط العريضة الأساسية للعملية (في المكتبة التجارية التي أعرفها) هي:

  1. في البداية عليك تحديد المحاذاة الخشنة للصور ، أي
    • الصورة A على يسار الصورة B وتتداخل بنسبة أقل من 10 ٪.
    • الصورة C هي على يمين الصورة B وتتداخل بنسبة 10-20 ٪ وما إلى ذلك.
  2. استنادًا إلى المعلمات في 1) ستحاول الخوارزمية العثور على "قالب" فريد في المناطق المتداخلة. بعد ذلك سوف يستخدم أ مطابقة النموذج تقنية لتحديد موقع القالب في كل من الصور 2 المتداخلة.
  3. يمكن تكرار البند 2) عدة مرات لإعطاء سلسلة من المواقع المطابقة ، والتي يمكن بعد ذلك استخدامها لتوفير نوبة دقيقة.

في الخطوة 3 ، يمكنك أيضًا مراعاة التشويه مثل الدوران وتشويه العدسة. ولكن للسماح بالتغييرات في اللون الخطوة 2 ، يجب أن تكون أكثر تقدماً (أي ليس فقط بناءً على مستوى بكسل Greyscale).

هناك طلب المواصفات لإضافة هذه الوظيفة إلى مكتبة أفورج, ، لكن في الوقت الحالي لم يتم ذلك ولا أعرف الوضع الحالي.

نصائح أخرى

تحديث إجابة مات وارن, ، هناك مقالة على codeproject تشرح كيف يمكن إجراء خياطة الصورة التلقائية باستخدام Accord.net. كما يفسر بعض النظرية وراء هذه العملية.

إطار عمل Accord.net هو إطار عمل مكتوب في C# يمتد إطار Aforge.net الأصلي باستخدام أدوات ومكتبات جديدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top