أكثر

كيفية قص خطوط الكنتور عند حافة مصدر البيانات

كيفية قص خطوط الكنتور عند حافة مصدر البيانات


لقد حسبت بعض خطوط الكنتور باستخدامجدال كونتورلنموذج ارتفاع في قاعدة بيانات Postgis. أحدهما عالي الدقة والآخر منخفض الدقة. الآن أرى مشاكل على حافة مصدر البيانات عالي الدقة الخاص بي حيث تقوم الخطوط بإنشاء حد أسود. انظر الصورة المرفقة.

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

سؤالي الآن هو: هل يمكنني بطريقة ما قطع تلك الخطوط؟ اعتقدت أنني قد أكون قادرًا على استخدام جزء البيانات من GeoTiff الذي استخدمته لخطوط الكنتور عالية الدقة لإنشاء شكل. ثم قلص الشكل عن طريق دعنا نقول 10 أمتار أو نحو ذلك واستخدم هذا الشكل لقطع خط الكنتور الخاص بي؟!؟ هل هذا ممكن بطريقة ما باستخدام PostGIS و gdal؟


إذا كنت تستخدمgdal_polygonize.pyلاستخراج شكل منطقة nodata (أو! nodata) في مضلع ، يمكنك استخدامST_Buffer ()في PostGIS مع أ نفي المعلمة لتقليص تلك المنطقة قليلا ثمتقاطع ST ()لقص خطوط الكنتور معها.


كيف أقوم بإنشاء تجاوز الهوامش لتصميم على شكل دونات؟ (طوق لبرميل)

أنا جديد جدًا على هذا وقد بحثت ووجدت موضوعًا واحدًا محددًا كاد أن يجيب على سؤالي ولكن ربما لست متأكدًا تمامًا من أنني أعرف ما أبحث عنه.

لدي تصميم سيتم طباعته وقطعه (أفترض؟) إلى حافة الدائرة الخارجية ثم أيضًا دائرة صغيرة في المنتصف لإنشاء طوق لأعلى البرميل (يشبه الدونات).

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

بالنسبة للأبعاد المحددة للهوامش ، يمكنني إنشاؤها داخل المستند ولكن بعد ذلك يكون مستطيلًا أو مربعًا ، فهل من الممكن إنشاؤه حول الدائرة - أو هل هذا مهم؟ في الوقت الحالي ، قمت للتو بمد حد الدائرة الخارجية قليلاً أكثر من خط الكنتور المقطوع.

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

أقدر أي وجميع التعليقات التي يمكن أن تساعدني في توصيل تصميمي إلى الطابعة.


بعد بعض البحث في المستند ، وجدت أفضل حل.

يتم تحديد ترتيب القطع على مستوى المحاور.

يوجد أدناه MWE الكامل لجعل الخطوط العريضة دائمًا أعلى السطح:

يمكنك محاولة العمل على خصائص بقع الكنتور: زيادة عرض خط حافة التصحيح: القيمة الافتراضية 0.5: يجب أن يكون عرض خط 1 أو 1.5 كافيًا.

بنفس الطريقة ، يمكنك تعيين خصائص lavels التي تم إنشاؤها بواسطة clabel: يمكنك ضبط حجم الخط ووزن الخط لجعلهما أكثر وضوحًا. كما يمكنك تحديد رقم التسمية المراد إضافتها عن طريق تحديد خاصية تباعد الملصقات.

يمكن أن يكون الخيار المثير للاهتمام أيضًا هو تعيين الملصقات يدويًا: يمكن القيام بذلك عن طريق تحديد خاصية manaul في استدعاء clabel.


نتائج

لتنفيذ البرنامج النصي الخاص بنا ، ما عليك سوى إصدار الأمر التالي:

أولاً ، سترى قناعنا للخطوط المتراكمة التي ستتم إزالتها:

الشكل 2: قناعنا المتراكم لخطوط الوجه المراد إزالتها. تظهر الأشكال المراد إزالتها على شكل أسود في حين أن مناطق الصورة التي سيتم الاحتفاظ بها هي أبيض.

لاحظ كيف تظهر الخطوط على شكل أشكال سوداء على خلفية بيضاء. هذا لأنه ستتم إزالة الأشكال السوداء من الصورة الأصلية بينما سيتم الاحتفاظ بالمناطق البيضاء بمجرد تطبيق وظيفة cv2.bitwise_and.

وهنا الإخراج بعد تطبيق القناع المتراكم:

الشكل 3: لقد نجحنا في إزالة الدوائر / علامات الحذف مع الاحتفاظ بالمستطيلات.

من الواضح أننا أزلنا الدوائر / الحذف من الصورة مع الاحتفاظ بالمستطيلات!

ماذا بعد؟ أوصي جامعة PyImageSearch.

أعتقد بشدة أنه إذا كان لديك المعلم المناسب يمكنك ذلك رئيس رؤية الكمبيوتر والتعلم العميق.

هل تعتقد أن تعلم رؤية الكمبيوتر والتعلم العميق يجب أن يكون مستهلكًا للوقت ومرهقًا ومعقدًا؟ أم يجب أن تتضمن رياضيات ومعادلات معقدة؟ أو يتطلب شهادة في علوم الكمبيوتر؟

كل ما تحتاجه لإتقان رؤية الكمبيوتر والتعلم العميق هو أن يشرح لك أحد الأشياء بسيطة وبديهية مصطلحات. وهذا بالضبط ما أفعله. مهمتي هي تغيير التعليم وكيفية تدريس موضوعات الذكاء الاصطناعي المعقدة.

إذا كنت جادًا في تعلم رؤية الكمبيوتر ، فيجب أن تكون محطتك التالية هي جامعة PyImageSearch ، وهي الرؤية الحاسوبية الأكثر شمولاً والتعلم العميق ودورة OpenCV عبر الإنترنت اليوم. هنا سوف تتعلم كيفية القيام بذلك بنجاح و بثقة تطبيق رؤية الكمبيوتر على عملك وأبحاثك ومشاريعك. انضم إلي في إتقان رؤية الكمبيوتر.

ستجد داخل جامعة PyImageSearch:

  • &التحقق من 23 دورة حول رؤية الكمبيوتر الأساسية والتعلم العميق وموضوعات OpenCV
  • & فحص 23 شهادة إتمام
  • &التحقق من 35 س 14 د فيديو عند الطلب
  • &التحقق من تم إصدار دورات تدريبية جديدة تمامًا كل شهر، مما يضمن لك مواكبة أحدث التقنيات
  • &التحقق من دفاتر Jupyter التي تم تكوينها مسبقًا في Google Colab
  • & تحقق من تشغيل جميع أمثلة التعليمات البرمجية في متصفح الويب الخاص بك - يعمل على أنظمة التشغيل Windows و macOS و Linux (لا يلزم تكوين بيئة التطوير!)
  • وتحقق من الوصول إلى مراكز إعادة شراء التعليمات البرمجية المركزية لـ الكل 400+ دروس على PyImageSearch
  • &التحقق من تنزيلات سهلة بنقرة واحدة للرموز ومجموعات البيانات والنماذج المدربة مسبقًا ، إلخ.
  • وتحقق من الوصول على الهاتف المحمول والكمبيوتر المحمول وسطح المكتب وما إلى ذلك.

OpenCV GrabCut: تجزئة المقدمة والاستخراج

في الجزء الأول من هذا البرنامج التعليمي ، سنناقش GrabCut وتنفيذه في OpenCV عبر وظيفة cv2.grabCut والمعلمات المرتبطة بها.

من هناك ، سنتعلم كيفية تنفيذ GrabCut مع OpenCV عبر كليهما:

  1. تهيئة GrabCut مع المربعات المحيطة
  2. تهيئة GrabCut بتقريب القناع

بعد ذلك ، سنطبق GrabCut ونراجع نتائجنا.

GrabCut في OpenCV

شكل 1: مجموعة مختارة من الطرق لأداء تجزئة المقدمة. العمود و يعرض نتائج GrabCut مقارنة بالمنهجيات الأخرى ، ينتج GrabCut عن تجزئة إخراج عالية الجودة. في البرنامج التعليمي اليوم ، سنطبق GrabCut مع OpenCV لتجزئة واستخراج المقدمة والخلفية. (مصدر الصورة: الشكل 2 من كولموغوروف وبليك ، 2004)

تحتوي الدالة cv2.grabCut على التوقيع التالي:

للحصول على فهم كامل للتنفيذ ، دعنا نراجع كل من هذه المعلمات:

  • img: صورة الإدخال ، التي يفترض GrabCut أنها صورة 8 بت ، 3 قنوات (على سبيل المثال ، عدد صحيح 8 بت بدون إشارة في ترتيب قناة BGR).
  • القناع: قناع الإدخال / الإخراج. يُفترض أن يكون هذا القناع صورة أحادية القناة بنوع بيانات عدد صحيح 8 بت بدون إشارة. تتم تهيئة هذا القناع تلقائيًا إذا كنت تستخدم تهيئة المربع المحيط (على سبيل المثال ، cv2.GC_INIT_WITH_RECT) وإلا ، يفترض GrabCut أنك تقوم بإجراء تهيئة القناع (cv2.GC_INIT_WITH_MASK).
  • rect: مستطيل الصندوق المحيط الذي يحتوي على المنطقة التي نريد تقسيمها. يتم استخدام هذه المعلمة فقط عند ضبط الوضع على cv2.GC_INIT_WITH_MASK).
  • bgModel: مصفوفة مؤقتة يستخدمها GrabCut داخليًا عند نمذجة ملف معرفتي.
  • fgModel: مصفوفة مؤقتة يستخدمها GrabCut عند نمذجة ملف المقدمة.
  • iterCount: عدد التكرارات التي سيجريها GrabCut عند نمذجة المقدمة مقابل الخلفية. كلما زاد عدد التكرارات ، كلما طالت مدة تشغيل GrabCut ، ومن الناحية المثالية ستكون النتائج أفضل.
  • الوضع: إما cv2.GC_INIT_WITH_RECT أو cv2.GC_INIT_WITH_MASK ، اعتمادًا على ما إذا كنت تقوم بتهيئة GrabCut بمربع محيط أو قناع ، على التوالي.

يعرض تطبيق GrabCut من OpenCV 3 مجموعات من:

  • القناع: قناع الإخراج بعد تطبيق GrabCut
  • bgModel: المصفوفة المؤقتة المستخدمة لنمذجة الخلفية (يمكنك تجاهل هذه القيمة)
  • fgModel: المصفوفة المؤقتة للمقدمة (مرة أخرى ، يمكنك تجاهل هذه القيمة)

الآن بعد أن أصبح لدينا فهم للدالة cv2.grabCut بما في ذلك معلماتها والقيم التي ترجعها ، دعنا ننتقل إلى تطبيق GrabCut على مثال لمشروع رؤية الكمبيوتر.

تكوين بيئة التطوير الخاصة بك

يمكنك إعداد نظامك اليوم باستخدام بيئة Python الافتراضية التي تحتوي على OpenCV باتباع ملفي نقطة تثبيت opencv برنامج تعليمي (إرشادات مضمنة لـ Ubuntu و macOS و Raspbian).

هيكل المشروع

قبل أن ننتقل ، استخدم "التحميلات" قسم من البرنامج التعليمي اليوم & # 8217s للاستيلاء على .zip المرتبط بهذه المدونة. من هناك ، دعنا نفحص تخطيط الملفات والمجلدات مباشرة في طرفنا باستخدام أمر الشجرة:

يتكون مشروعنا اليوم من مجلد واحد من الصور / ونصوص بايثون:

  • الصور /: صورتان إدخال واحدة يدويا خلق صورة قناع تقريبي
  • grabcut_bbox.py: نص ينجز برنامج GrabCut عن طريق تهيئة الصندوق المحيط
  • grabcut_mask.py: يقوم بإجراء GrabCut عبر تهيئة القناع

باستخدام كل من نصي Python ، سنتعلم كيفية تنفيذ GrabCut باستخدام طريقتين (تهيئة المربع المحيط مقابل تهيئة القناع). سنبدأ بنهج الصندوق المحيط في القسم التالي.

GrabCut مع OpenCV: التهيئة مع المربعات المحيطة

لنبدأ في تنفيذ GrabCut باستخدام OpenCV - سنبدأ بمراجعة طريقة تنفيذ الصندوق المحيط.

هنا ، سنحدد المربع المحيط للكائن الذي نريد تقسيمه في الصورة. يمكن إنشاء المربع المحيط بواسطة:

  • فحص الصورة يدويًا ووضع علامات على ملف (س ، ص)- إحداثيات الصندوق المحيط
  • تطبيق سلسلة Haar
  • استخدام HOG + Linear SVM لاكتشاف الكائن
  • استخدام أجهزة الكشف عن الكائنات القائمة على التعلم العميق مثل Faster R-CNN و SSDs و YOLO وما إلى ذلك.

طالما أن الخوارزمية تنشئ صندوقًا محيطًا ، يمكنك استخدامها مع GrabCut.

لأغراض البرنامج النصي التجريبي الخاص بنا اليوم ، سنفعل يدويا تحديد المربع المحيط (س ، ص)- إحداثيات (أي ، بدلاً من تطبيق كاشف كائن آلي).

دعنا نلقي نظرة على طريقة تهيئة المربع المحيط لـ GrabCut الآن.

افتح ملفًا جديدًا ، وقم بتسميته grabcut_bbox.py ، ثم أدخل الكود التالي:

نبدأ هذا البرنامج النصي بمجموعة مختارة من عمليات الاستيراد ، وهي OpenCV و NumPy (تم تضمين الباقي في Python). يرجى الرجوع إلى "تكوين بيئة التطوير الخاصة بك" أعلاه لتثبيت Python و OpenCV والبرامج المرتبطة على نظامك.

  • - الصورة: المسار إلى الصورة المدخلة. بشكل افتراضي ، سنستخدم صورة adrian.jpg في الصور / الدليل.
  • --iter: عدد تكرارات GrabCut التي يجب إجراؤها ، حيث تؤدي القيم الأصغر إلى وقت إجمالي أسرع وتؤدي القيم الأكبر إلى وقت تشغيل أبطأ (ولكن نتائج تجزئة أفضل بشكل مثالي)

دعنا نبدأ ونحمل مدخلاتنا - الصورة وخصص مساحة لقناع بحجم مماثل:

هنا، الخط 20 يقوم بتحميل المدخلات الخاصة بك - صورة من القرص و السطر 21 ينشئ قناعًا (أي صورة فارغة) بنفس الأبعاد. سيتم ملء القناع قريبًا بنتائج خوارزمية GrabCut.

بعد ذلك ، سنفعل يدويا تحديد إحداثيات الوجه في صورة adrian.jpg:

السطر 25 يحدد إحداثيات الصندوق المحيط للوجه في الصورة. هؤلاء (س ، ص)- تم تحديد الإحداثيات يدويا عن طريق الفأرة التي تحوم فوق وحدات البكسل في الصورة وأقوم بتدوينها لأسفل. يمكنك تحقيق ذلك باستخدام معظم برامج تحرير الصور بما في ذلك Photoshop أو البدائل المجانية مثل GIMP والتطبيقات الأخرى التي تجدها على الإنترنت.

من المهم أن نلاحظ هنا أنه بينما تم تحديد إحداثيات الوجه المستقيمة يدويًا ، يمكن لأي كاشف كائن القيام بهذه المهمة. بالنظر إلى أن مثالنا الأول هو وجه ، كان بإمكانك اختيار كاشف وجه قائم على Haar أو HOG أو DL للعثور على إحداثيات الصندوق المحيط للوجه (استبدل كاشف كائن مختلف لأنواع مختلفة من الكائنات).

في مقطع التعليمات البرمجية التالي ، سنقوم بذلك تنفيذ خوارزمية GrabCut مع تهيئة المربع المحيط على مدخلاتنا:

قبل إجراء حساب GrabCut ، نحتاج إلى مصفوفتين فارغتين لـ GrabCut لاستخدامهما داخليًا عند تقسيم المقدمة من الخلفية (fgModel و bgModel). السطر 29 و 30 إنشاء كلا المصفوفتين باستخدام طريقة الأصفار في NumPy.

من هناك، السطر 34 و 35 تطبيق GrabCut (يتم جمع الطوابع الزمنية قبل / بعد العملية) ، ويتم طباعة الوقت المنقضي عبر الخط 37.

يقوم GrabCut بإرجاع قناعنا المأهول بالإضافة إلى مصفوفتين يمكننا تجاهلهما. إذا كنت بحاجة إلى ملف مراجعة توقيع أسلوب GrabCut بما في ذلك معلمات الإدخال وقيم الإرجاع ، يرجى الرجوع إلى "GrabCut في OpenCV" القسم أعلاه.

دعنا نمضي قدمًا وبعد معالجة قناعنا:

الخطوط 42-47 تحديد القيم الممكنة في قناع GrabCut الناتج بما في ذلك الخلفيات والمقدمة المحددة / المحتملة.

ثم ننتقل إلى حلقة فوق هذه القيم حتى نتمكن من تصور كل منها. داخل الحلقة (خطوط 50-57) ، نقوم (1) ببناء قناع للقيمة الحالية و (2) نعرضه حتى يتم الضغط على أي مفتاح.

بعد عرض كل من الخلفيات والمقدمة المحددة / المحتملة ، سيبدأ الكود الخاص بنا في إنشاء قناع الإخراج وصورة الإخراج:

نحن هنا ننتج تصورين:

لإنتاج قناع إخراج GrabCut ، السطر 62 و 63 ابحث عن جميع وحدات البكسل التي تكون إما خلفية محددة أو خلفية محتملة وقم بتعيينها على 0 - يجب تمييز جميع وحدات البكسل الأخرى على أنها 1 (أي المقدمة). لاحظ كيف نستفيد من وظيفة NumPy's where أثناء استخدام OR لكل قناع وتعيين القيمتين على 0 و 1 وفقًا لذلك. ثم، الخط 66 يقيس الإخراج قناع من النطاق [0, 1] ل [0, 255].

نقوم بعد ذلك بإنشاء صورة الإخراج الخاصة بنا مع إخفاء الخلفية عن طريق عملية bitwise_and وتمرير قناع الإخراج كمعامل قناع (الخط 70).

  • المدخلات المعدة لوظيفة grabCut بما في ذلك صورة الإدخال والقناع وإحداثيات المستقيم ومصفوفات fgModel و bgModel الصفرية. لاحظ أنه تم تحديد إحداثيات المستقيم يدويا.
  • نفذت خوارزمية GrabCut.
  • تم إنشاء وتصور أقنعة الخلفية المحددة / المحتملة والأقنعة الأمامية.
  • أنشأ (1) قناع إخراج GrabCut (قناع الإخراج) وصورة الإخراج (2) مع إخفاء الخلفية (الإخراج).

لنبدأ ونعرض نتائجنا النهائية:

في الختام ، نعرض كل مما يلي في نوافذ منفصلة:

  • الصورة: مدخلاتنا الأصلية - الصورة
  • outputMask: قناع GrabCut
  • الإخراج: نتائج عملنا الشاق - فقط المقدمة من صورتنا الأصلية (على سبيل المثال ، تم إخفاء الخلفية عن طريق GrabCut)

الآن بعد أن تم تنفيذ GrabCut مع تهيئة الصندوق المحيط ، دعنا ننتقل إلى تطبيقه على صور الإدخال الخاصة بنا.

مربع الإحاطة نتائج GrabCut

ابدأ باستخدام ملف "التحميلات" قسم من منشور المدونة هذا لتنزيل الكود المصدري ومثال الصورة.

من هناك ، افتح Terminal ، وقم بتنفيذ الأمر التالي:

الشكل 2: تتطلب طريقة تهيئة الصندوق المحيط GrabCut توفير إحداثيات الصندوق المحيط كمدخلات للخوارزمية. هنا ، لقد فعلت يدويا وجدت إحداثيات المربع المحيط ، ومع ذلك ، يمكنك تطبيق أي نوع من كاشف الكائنات للاستيلاء على (س ، ص)- التنسيق. في كلتا الحالتين ، ستتمكن من تطبيق GrabCut مع OpenCV لإجراء تجزئة واستخراج المقدمة.

على ال متبقى، يمكنك رؤية صورة الإدخال الأصلية ، أثناء تشغيل ملف حق، يمكنك رؤية نفس الوجه مع مربع محيط مرسوم حول منطقة الوجه / الرقبة (يتوافق هذا المربع المحيط مع المتغير المستطيل في النص grabcut_bbox.py).

هدفنا هنا هو تقسيم منطقة الوجه والرقبة تلقائيًا من الصورة أعلاه باستخدام GrabCut و OpenCV.

بعد ذلك ، يمكنك رؤية مخرجاتنا من خطوط 45-60 حيث نتخيل الخلفية المحددة والمحتملة وتجزئة المقدمة:

الشكل 3: تم تصور أقنعة GrabCut المختلفة (تهيئة الصندوق المحيط) باستخدام OpenCV. أعلى اليسار: خلفية واضحة. فوق على اليمين: الخلفية المحتملة. أسفل اليسار: مقدمة محددة. أسفل اليمين: المقدمة المحتملة.
  1. خلفية واضحة(أعلى اليسار): cv2.GC_BGD
  2. الخلفية المحتملة(فوق على اليمين): cv2.GC_PR_BGD
  3. مقدمة محددة(أسفل اليسار): cv2.GC_FGD
  4. المقدمة المحتملة(أسفل اليمين): cv2.GC_PR_FGD

أخيرًا ، لدينا ناتج GrabCut نفسه:

الشكل 4: متبقى: صورتنا الأصلية المدخلة لي. حق: قناع GrabCut عبر تهيئة الصندوق المحيط. أسفل: صورة الإخراج الخاصة بنا حيث يتم تجزئة المقدمة من الخلفية عبر إخفاء GrabCut. تم إنشاء كل صورة من هذه الصور عن طريق OpenCV وتطبيق GrabCut لتجزئة واستخراج المقدمة.

على ال متبقى، لدينا صورة الإدخال الأصلية.

ال حق يُظهر قناع الإخراج الذي تم إنشاؤه بواسطة GrabCut ، بينما يُظهر ملف أسفل يُظهر إخراج تطبيق القناع على صورة الإدخال - لاحظ كيف يتم تجزئة وجهي ورقبتي بشكل نظيف واستخراجهما عبر GrabCut.

GrabCut مع OpenCV: التهيئة باستخدام الأقنعة

في السابق ، تعلمنا كيفية تهيئة برنامج GrabCut الخاص بـ OpenCV باستخدام المربعات المحيطة - ولكن هناك في الواقع ملف ثانيا طريقة لتهيئة GrabCut.

باستخدام الأقنعة ، يمكننا تزويد تقريبي تجزئة الكائن في الصورة. يمكن لبرنامج GrabCut بعد ذلك تطبيق تخفيضات الرسم البياني بشكل متكرر لتحسين التجزئة واستخراج المقدمة من الصورة.

يمكن إنشاء هذه الأقنعة من خلال:

  • إنشائها يدويًا في برامج تحرير الصور مثل Photoshop و GIMP وما إلى ذلك.
  • تطبيق عمليات معالجة الصور الأساسية مثل العتبة ، واكتشاف الحواف ، وتصفية الكنتور ، إلخ.
  • استخدام شبكات التجزئة القائمة على التعلم العميق (على سبيل المثال ، Mask R-CNN و U-Net)

كيفية إنشاء القناع لا علاقة لها بـ GrabCut. طالما لديك قناع يقترب من تقسيم الكائن في الصورة ، يمكنك استخدام GrabCut لتحسين التجزئة.

دعونا نرى كيف يعمل GrabCut مع تهيئة القناع.

افتح ملف grabcut_mask.py في هيكل دليل مشروعك ، وأدخل الكود التالي:

مرة أخرى ، أبرز وارداتنا هي OpenCV و NumPy. رجاءا اتبع ال "تكوين بيئة التطوير الخاصة بك" تعليمات القسم إذا كنت بحاجة إلى إعداد نظامك لأداء GrabCut مع تهيئة القناع.

  • - الصورة: المسار إلى الصورة المدخلة. هذه المرة ، بشكل افتراضي ، سنستخدم صورة lighthouse.png المتوفرة في الصور / الدليل.
  • --mask: المسار لإدخال قناع التقريب المرتبط بالصورة المدخلة. مرة أخرى ، يمكنك إنشاء هذا القناع بعدة طرق مدرجة أعلى هذا القسم ، ولكن من أجل هذا المثال ، يدويا خلق القناع.
  • --iter: عدد تكرارات GrabCut التي يجب إجراؤها ، حيث تؤدي القيم الأصغر إلى وقت إجمالي أسرع وتؤدي القيم الأكبر إلى وقت تشغيل أبطأ (ولكن نتائج تجزئة أفضل بشكل مثالي)

الآن بعد أن تم الاهتمام بالواردات ووسيطات سطر الأوامر ، دعنا نمضي قدمًا ونقوم بتحميل المدخلات - الصورة والمدخلات - قناع:

قبل أن ندخل في أعشاب طريقة GrabCut الثانية هذه ، نحتاج إلى تحميل مدخلاتنا - صورة و - قناع من القرص (السطر 21 و 22).

يرجى ملاحظة أن قناعنا الخشن كان يدويا تم إنشاؤها من أجل هذا المثال (باستخدام Photoshop / GIMP) ومع ذلك ، في منشور مستقبلي ، سنعرض لك كيفية تلقائيا قم بإنشاء القناع عبر قناع التعلم العميق R-CNN.

السطر 26 يطبق AND قليلاً على الصورة باستخدام القناع ، مما يؤدي إلى تقريب تقريبي لتجزئة المقدمة. تبعا السطر 29 و 30 اعرض التقريب حتى يتم الضغط على أي مفتاح.

من هنا ، سنقوم بتعيين قيم المقدمة المحتملة / المحددة في مصفوفة القناع:

يتم تعيين أي قيم بكسل في القناع أكبر من الصفر على المقدمة المحتملة (السطر 34) يتم تعيين جميع قيم البكسل الأخرى على خلفية محددة (الخط 35).

نحن الآن جاهزون لذلك تطبيق GrabCut مع تهيئة القناع:

مرة أخرى ، نخصص ذاكرة لنماذج المقدمة والخلفية لـ GrabCut (السطر 39 و 40).

ثم نقوم بتنفيذ GrabCut على الصورة باستخدام تجزئة القناع التقريبية (السطر 44 و 45). لاحظ كيف تم تعيين المعلمة rect إلى None (لسنا بحاجة إليها لهذه الطريقة) ، على عكس الطريقة الأولى القائمة على مربع الإحاطة الموصوفة في منشور المدونة هذا.

من الآن فصاعدًا ، سنقوم بمعالجة النتائج بعد ذلك:

يجب أن تبدو هذه الكتلة مألوفة بشكل خاص. في الواقع ، إنه مطابق للكتلة في أول تجول لرمز طريقة GrabCut.

مرة أخرى ، نحدد قيم المقدمة والخلفية المحددة / المحتملة (السطور 52-57) وعرض كل صورة من صور قناع القيمة الناتجة (خطوط 60-67).

بعد ذلك ، سنجهز قناع GrabCut وصورة الإخراج مع إزالة الخلفية:

مرة أخرى ، هذا الرمز قيد التشغيل الخطوط 72-78 يجب أن تكون مألوفة في هذه المرحلة (فهي متطابقة مع النص السابق).

هنا ، نجد جميع وحدات البكسل التي تكون إما خلفية محددة أو خلفية محتملة وقمنا بتعيينها على 0 ، ويتم تمييز جميع وحدات البكسل الأخرى على أنها 1 (على سبيل المثال ، المقدمة). ثم نقوم بتوسيع نطاق القناع إلى النطاق [0, 255].

نقوم بعد ذلك بتطبيق عملية AND بطريقة بسيطة على الصورة المدخلة باستخدام قناع الإخراج ، مما يؤدي إلى إزالة الخلفية (مقنعة).

وأخيرًا نعرض النتائج على الشاشة:

مرة أخرى ، لإكمال البرنامج النصي الخاص بنا ، نعرض صورة الإدخال وقناع إخراج GrabCut وإخراج GrabCut بعد تطبيق القناع.

مع تنفيذ تهيئة قناع GrabCut الآن ، دعنا ننتقل إلى اختباره باستخدام صورنا النموذجية.

نتائج Mask GrabCut

نحن الآن جاهزون لاستخدام OpenCV و GrabCut لتقسيم الصورة عبر تهيئة القناع.

ابدأ باستخدام ملف "التحميلات" قسم من هذا البرنامج التعليمي لتنزيل الكود المصدري وأمثلة للصور.

من هناك ، افتح Terminal ، وقم بتنفيذ الأمر التالي:

الشكل 5: متبقى: صورتنا الأصلية لمنارة. حق: ناتج تطبيق GrabCut عبر تهيئة القناع.

على ال متبقى، يمكنك رؤية صورة الإدخال الأصلية الخاصة بنا. على ال حق يمكنك رؤية ناتج تطبيق GrabCut عبر تهيئة القناع.

الصورة على حق يظهر القناع المرتبط بالمنارة. من أجل منشور المدونة / المثال هذا ، قمت بإنشاء هذا القناع يدويًا في Photoshop ، ولكن يمكن استخدام أي خوارزمية قادرة على إنتاج قناع هنا (على سبيل المثال ، معالجة الصور الأساسية عبر العتبة ، واكتشاف الحواف ، والتقسيم القائم على التعلم العميق ، إلخ.) لاحظ كيف أن القناع / التقسيم ليس "نظيفًا" - يمكننا بسهولة رؤية السماء الزرقاء للخلفية "تتسرب" إلى قناعنا.

من هناك ، يمكننا تصور أقنعةنا المحددة والمحتملة للخلفية والمقدمة ، على التوالي:

الشكل 6: تم تصور أقنعة GrabCut المختلفة (تهيئة القناع) باستخدام OpenCV. أعلى اليسار: خلفية واضحة. فوق على اليمين: الخلفية المحتملة. أسفل اليسار: مقدمة محددة. أسفل اليمين: المقدمة المحتملة.
  1. خلفية واضحة(أعلى اليسار): cv2.GC_BGD
  2. الخلفية المحتملة(فوق على اليمين): cv2.GC_PR_BGD
  3. مقدمة محددة(أسفل اليسار): cv2.GC_FGD
  4. المقدمة المحتملة(أسفل اليمين): cv2.GC_PR_FGD

وأخيرًا ، لدينا إخراج OpenCV's GrabCut مع تهيئة القناع:

الشكل 7: متبقى: صورة الإدخال الأصلية لمنارة. حق: قناع GrabCut عبر تهيئة القناع. أسفل: صورة الإخراج الخاصة بنا حيث تكون المقدمة مجزأة من الخلفية عبر إخفاء GrabCut. تم إنشاء كل صورة من هذه الصور عن طريق OpenCV وتطبيق GrabCut لتجزئة واستخراج المقدمة.

للإشارة ، فإن متبقى يعرض صورة الإدخال لدينا.

ال حق يُظهر قناع الإخراج الذي تم إنشاؤه بواسطة GrabCut ، بينما يُظهر ملف أسفل يعرض إخراج تطبيق القناع الذي تم إنشاؤه بواسطة GrabCut على صورة الإدخال الأصلية.

لاحظ أننا قمنا بتنظيف التجزئة لدينا - تمت إزالة الخلفية الزرقاء من السماء ، بينما تُركت المنارة كمقدمة.

المشكلة الوحيدة هي أن المنطقة التي يجلس فيها الضوء الفعلي في المنارة تم تحديدها كخلفية:

الشكل 8: انقر لعرض هذا في متصفحك مع خيار التكبير (ctrl + "+"). كما يمكنك أن تلاحظ ، فإن نتائج GrabCut مع تهيئة القناع ليست مثالية. أقترح عليك استخدام خلفية محددة ينتج عن قيمة القناع بدلاً من كلاهما مقدمة محددة / محتملة أقنعة في هذه الحالة المحددة. ستحتاج إلى عكس صورة قناع الخلفية المحددة باستخدام معرفتك بـ OpenCV / NumPy. من هناك ، ستؤدي طريقة تهيئة قناع GrabCut إلى تجزئة مقدمة أفضل.

تكمن المشكلة هنا في أن المنطقة التي يجلس فيها الضوء في المنارة شفافة إلى حد ما ، مما يتسبب في تألق خلفية السماء الزرقاء ، مما يجعل GrabCut يميز هذه المنطقة كخلفية.

يمكنك حل هذه المشكلة عن طريق تحديث قناعك لاستخدام الخلفية المحددة (على سبيل المثال ، cv.GC_BGD) عند تحميل القناع من القرص. سأترك هذا كتمرين لك ، أيها القارئ ، لتنفيذه.

لماذا GrabCut جيد ، لكنه ليس مثاليًا

GrabCut هي واحدة من خوارزميات الرؤية الحاسوبية المفضلة لدي ، ولكنها ليست مثالية.

علاوة على ذلك ، يمكن لشبكات التجزئة القائمة على التعلم العميق مثل Faster R-CNN و U-Net تلقائيا إنشاء أقنعة يمكنها تقسيم الكائنات (المقدمة) من خلفياتها - هل يعني ذلك أن GrabCut غير ذي صلة بعصر التعلم العميق؟

في حين أن Faster R-CNN و U-Net هما طريقتان قويتان للغاية ، إلا أنهما يمكن أن ينتج عنها أقنعة فوضوية بعض الشيء. يمكننا استخدام GrabCut للمساعدة في تنظيف هذه الأقنعة. سأوضح لك كيفية القيام بذلك بالضبط في مشاركة مدونة مستقبلية.

ماذا بعد؟ أوصي جامعة PyImageSearch.

أعتقد بشدة أنه إذا كان لديك المعلم المناسب يمكنك ذلك رئيس رؤية الكمبيوتر والتعلم العميق.

هل تعتقد أن تعلم رؤية الكمبيوتر والتعلم العميق يجب أن يكون مستهلكًا للوقت ومرهقًا ومعقدًا؟ أم يجب أن تتضمن رياضيات ومعادلات معقدة؟ أو يتطلب شهادة في علوم الكمبيوتر؟

كل ما تحتاجه لإتقان رؤية الكمبيوتر والتعلم العميق هو أن يشرح لك أحد الأشياء بسيطة وبديهية مصطلحات. وهذا بالضبط ما أفعله. مهمتي هي تغيير التعليم وكيفية تدريس موضوعات الذكاء الاصطناعي المعقدة.

إذا كنت جادًا في تعلم رؤية الكمبيوتر ، فيجب أن تكون محطتك التالية هي جامعة PyImageSearch ، وهي الرؤية الحاسوبية الأكثر شمولاً والتعلم العميق ودورة OpenCV عبر الإنترنت اليوم. هنا سوف تتعلم كيفية القيام بذلك بنجاح و بثقة تطبيق رؤية الكمبيوتر على عملك وأبحاثك ومشاريعك. انضم إلي في إتقان رؤية الكمبيوتر.

ستجد داخل جامعة PyImageSearch:

  • &التحقق من 23 دورة حول رؤية الكمبيوتر الأساسية والتعلم العميق وموضوعات OpenCV
  • & فحص 23 شهادة إتمام
  • &التحقق من 35 س 14 د فيديو عند الطلب
  • &التحقق من تم إصدار دورات تدريبية جديدة كل شهر، مما يضمن لك مواكبة أحدث التقنيات
  • &التحقق من دفاتر Jupyter التي تم تكوينها مسبقًا في Google Colab
  • & تحقق من تشغيل جميع أمثلة التعليمات البرمجية في متصفح الويب الخاص بك - يعمل على أنظمة التشغيل Windows و macOS و Linux (لا يلزم تكوين بيئة مطور!)
  • وتحقق من الوصول إلى مراكز إعادة شراء التعليمات البرمجية المركزية لـ الكل 400+ دروس على PyImageSearch
  • &التحقق من تنزيلات سهلة بنقرة واحدة للرموز ومجموعات البيانات والنماذج المدربة مسبقًا ، إلخ.
  • وتحقق من الوصول على الهاتف المحمول والكمبيوتر المحمول وسطح المكتب وما إلى ذلك.

ما هو اسم الوظائف المعقدة مع الأعمدة وقطع الفروع؟

أعرف أن أكثر الوظائف المعقدة "حسن التصرف" في مجال ما تسمى هولومورفيك. إذا كانت التفردات الوحيدة في المجال هي الأقطاب ، فنحن نقول أن الوظيفة متغيرة الشكل على المجال بأكمله ، أو نقول إنها كاملة الشكل في كل مكان باستثناء القطبين. يبدو لي أن المنطق نفسه ينطبق على الدوال ذات القطع الفرعية: يمكن أن تكون متشابهة في كل مكان باستثناء بعض المنحنيات ، أي أن التفردات التي نحاول استبعادها تحدث على سطر بدلاً من نقاط كثيرة. إذن ماذا تسمي هذه الوظيفة في مجال يتضمن كفاف قطع الفرع؟


الحل الخاص بك صحيح ، ولكن بما أنك تخمن ، فسوف أشرح ذلك.

قيم $ z $ التي تجعل التعبير تحت الجذر التربيعي صفر ستكون نقاط تفرع أي ، $ z = pm i $ هي نقاط تفرع. دع $ z - i = r_1e ^$ و $ z + i = r_2e ^$. ثم $ f (z) = sqrt = sqrtه ^$.

  1. إذا لم نحاصر أي نقطة فرع ، فبعد ثورة واحدة ، $ f (z) mapsto f (z) $.
  2. إذا قمنا بتطويق $ z = i $ وليس $ z = -i $ ، ثم $ sqrtه ^ = sqrtه ^ه ^ < pi i> = - sqrtه ^ لذلك ، $ f (z) mapsto -f (z) $ متعدد القيم
  3. يحدث نفس الشيء عندما نحاصر $ z = -i $ لكن ليس $ z = i $
  4. دعنا نطوق كلا نقطتي الفرع. دولار مربعه ^ = sqrtه ^ه ^ <2 pi i> = sqrtه ^ cdot 1 $ So $ f (z) mapsto f (z) $ لا تزال ذات قيمة واحدة.

يمكننا اختيار $ [i، infty) $ و $ [- i، - infty) $ ، ولكن من العنصر 4 ، رأينا عبورًا حول النقطتين يعيد الدالة إلى قيمتها الأصلية. لذلك ، يمكننا اختيار قطع فرع محدود ، أي $ [- i، i] $.


تحولات تضاريس المناظر الطبيعية لمنجم الفحم Bełchatów (بولندا الوسطى) والمنطقة المحيطة بناءً على تحليل DEM

موضوع الورقة مناسب للمجلة. قام المؤلفون بتقييم تأثير التعدين المكشوف على المناظر الطبيعية باستخدام DEMs من فترات مختلفة. تعتبر القضية التي تم تناولها في المخطوطة مهمة جدًا لمجتمع الهندسة الجيولوجية. ومع ذلك ، فإن المخطوطة ليست المستوى العلمي العالي الذي قدمته المجلة وسيتعين على المؤلفين تغيير نهجهم من أجل تبرير أهمية النتائج التي توصلوا إليها لقراء IJGI

أولاً ، لم يتم تعريف الإعداد التجريبي والمنهجية بشكل واضح. أيضا ، مناقشة النتائج غير متسقة. لذلك ، ينبغي أخذ تحسين كبير في هذه الأقسام في الاعتبار قبل أي تقديم آخر.

تحتوي الورقة على عدد كبير من الأخطاء المطبعية الصغيرة وأخطاء قواعد اللغة الإنجليزية التي تحتاج إلى تعديل.

نود أن نشكر المراجعين على تعليقاتهم لتحسين الورقة. تم تناول جميع الملاحظات بعناية في النسخة المنقحة من المخطوطة. تمت إعادة كتابة الورقة بشكل كبير بعد ملاحظات المراجعين. تم تمييز كافة التغييرات.

أولاً ، لم يتم تعريف الإعداد التجريبي والمنهجية بشكل واضح. أيضا ، مناقشة النتائج غير متسقة. لذلك ، ينبغي أخذ تحسين كبير في هذه الأقسام في الاعتبار قبل أي تقديم آخر.

تم تغيير النص في فصلين: 2. المواد والأساليب و 4. مناقشة

تم تمييز جميع التغييرات

تحتوي الورقة على عدد كبير من الأخطاء المطبعية الصغيرة وأخطاء قواعد اللغة الإنجليزية التي تحتاج إلى تعديل.

تم تدقيق الورق من خلال خدمة التدقيق الأكاديمي المهنية ومقرها في إنجلترا ، ولدينا شهادة إثبات. بعد التحديد النهائي للنص ، إذا استمر احتوائه على أخطاء وفقًا للمراجعين - فسنرسله مرة أخرى للمراجعة.

هذه مخطوطة مثيرة للاهتمام تتعلق بتصور وتحليل التغيرات في تضاريس منجم فحم مفتوح. لكن لدي عدة ملاحظات يجب أخذها بعين الاعتبار قبل نشر هذا المقال.

1. لإنشاء DEM لفترة ما قبل الاستثمار ، استخدم المؤلفون خريطة طبوغرافية عسكرية ألمانية قديمة. ومع ذلك ، تم إنتاج هذه الخريطة تصويرًا ضوئيًا من أجهزة تجسيمية. وبقدر ما نعلم ، فإن أرشيف الصور الجوية لـ Luftwaffe متاح حاليًا ، على وجه الخصوص ، في الأرشيف الوطني في واشنطن العاصمة. لإنشاء DEM ، سيكون من الأصح استخدام الصور المجسمة الأصلية بدلاً من الخريطة الطبوغرافية.

2. ثلثا المراجع هي مقالات بولندية. هذا غير مقبول لورقة بحثية مقدمة لمجلة دولية. في علم الهندسة ، هناك الكثير من المنشورات ذات الصلة باللغة الإنجليزية. يبدو أن المؤلفين على دراية ضعيفة بالأدب العلمي الدولي.

3. هذا ، على وجه الخصوص ، يتجلى في التفسير الخاطئ لمصطلح "DTM" (ص 2 سطور 78-86). خلط المؤلفون بين نموذج التضاريس الرقمية (DTM) ونموذج السطح الرقمي (DSM). انظر تعريفات DEM و DTM و DSM في الصفحة 78 في الكتاب: Florinsky، IV، 2016. Digital Terrain Analysis in Soil Science and Geology. 2 nd ed. Amsterdam: Academic Press.

4. To define the land surface, the authors systematically use the word 'relief'. I would recommend the authors use the word 'topography'. For details of this terminological nuance, see page 5 in the book: Hengl, T., and Reuter, H.I. (Eds.), 2009. Geomorphometry: Concepts, Software, Applications. Amsterdam: Elsevier.

We would like to thank the reviewers for their comments to improve the paper. All the remarks were carefully addressed in the revised version of the manuscript. The paper was substantially rewritten following remarks of the reviewers. All changes were highlighted.

To create a DEM for the pre-investment period, the authors used an old German military topographic map. However, this map was photogrammetrically produced from stereopairs. As far as we know, the archive of Luftwaffe aerial photographs is currently available, in particular, in the National Archives in Washington, DC. To create a DEM, it would be more correct to use original stereopairs rather than a topographic map.

These maps are a reproduction of the pre-war maps of the Polish Military Geographic Institute. The picture of the Scherzau 1944 map presented in the drawing is identical to the Szczerców sheet from 1934. The drawing of the topography was created on the basis of painstaking geodetic measurements in the area. The authors chose reproduction as the source material due to the better condition and readability of the spirit levels.

Krassowski, M. Tomaszewska, &ldquoMAPY TOPOGRAFICZNE ZIEM POLSKICH 1871 - 1945. tom I&rdquo Warszawa 1979

Two thirds of references are Polish articles. This is unacceptable for a paper submitted to an international journal. In geomorphometry, there are a lot of relevant publications in English. It seems that the authors are poorly aware of international scientific literature.

After searching and analyzing the literature changes, there are 24 items, of which 10 are Polish-language items. Such a large number of them results from the specificity of studies on the Bełchatów coal mine and Polish historical maps are known to the authors only in Polish.

This, in particular, is manifested in the erroneous interpretation of the term 'DTM' (p. 2 lines 78-86). The authors confused digital terrain model (DTM) with digital surface model (DSM). See the definitions of DEM, DTM, and DSM on page 78 in the book: Florinsky, I.V., 2016. Digital Terrain Analysis in Soil Science and Geology. 2 nd ed. Amsterdam: Academic Press.

The text has been all changes were highlighted.

To define the land surface, the authors systematically use the word 'relief'. I would recommend the authors use the word 'topography'. For details of this terminological nuance, see page 5 in the book: Hengl, T., and Reuter, H.I. (Eds.), 2009. Geomorphometry: Concepts, Software, Applications. Amsterdam: Elsevier.

Authors agree with the reviewer's proposal. After reading the recommended literature, we think Topography is a better term than relief.

It is good to see this manuscript with improvement. However, before final publication it would be nice if the authors can consider some minor corrections.

>> The manuscript still has some typos and minor language errors. Few examples are given below, further improvement will enhance the quality of the manuscript.

>> Line 28 to 29: &hellipand biosphere [1] In addition, opencast mining impacts on socio-economic components of the environment. => &hellipand biosphere [1]. In addition, opencast mining has impacts on socio-economic components of the environment

>> Line 33: where the scale of changes => where the amount of changes

>> Line 38 to 40: Please re-write these lines to make it clear.

>> Line 59: studies by:[9][10] => studies by : [9][10]

>> Line 69: In order to perform topography analyses of a given area, an adequate set of data is required => Can be rephrased &ldquoIn order to perform an analysis of the topography of a given area.&rdquo

>> Line 79 to 82: A good explanation of the difference between DEM, DSM, DTM can be found in the following literature:

Habib et al., (2017). Extraction and Accuracy Assessment of High Resolution DEM and Derived Orthoimages from ALOS-PRISM Data over Sahel-Doukkala (Morocco). Earth Science Informatics Florinsky (2012). Digital terrain analysis in soil science and geology. Li et al., (2005) Digital terrain modeling: Principales and Methodolgy.

>> Line 101: DEM for area of analysis: DEM for the analyzed area

>> Line 86 to 87: Which interpolation algorithm was used for the current research? And why?

>> Line 98 to 99: Try to give the horizontal and vertical accuracy of the used topographic maps

>> Line 284 to 287: The reviewer doesn&rsquot agree with the authors, because the histogram doesn&rsquot show a great variation of aspects. Most aspects are toward North, NE and NW are shown, whereas, aspects towards are few and can be related to noise and artefacts.

>> Line 287 to 291: You didn&rsquot mention aspects between 320 and 40 which show greater distribution. Try to add an analysis of that.

We would like to thank the reviewer for their comments to improve the paper.

>> Line 28 to 29: &hellipand biosphere [1] In addition, opencast mining impacts on socio-economic components of the environment. => &hellipand biosphere [1]. In addition, opencast mining hasimpacts on socio-economic components of the environment

>> Line 33: where the scale of changes => where the amount of changes

>> Line 38 to 40: Please re-write these lines to make it clear.

>> Line 59: studies by:[9][10] => studies by : [9][10]

>> Line 69: In order to perform topography analyses of a given area, an adequate set of data is required => Can be rephrased &ldquoIn order to perform an analysis of the topography of a given area.&rdquo

>> Line 79 to 82: A good explanation of the difference between DEM, DSM, DTM can be found in the following literature:

Habib et al., (2017). Extraction and Accuracy Assessment of High Resolution DEM and Derived Orthoimages from ALOS-PRISM Data over Sahel-Doukkala (Morocco). Earth Science Informatics Florinsky (2012). Digital terrain analysis in soil science and geology. Li et al., (2005) Digital terrain modeling: Principales and Methodolgy.

Terms DEM, DTM, DSM were carefully reviewed based on article &bdquoExtraction and Accuracy Assessment of High Resolution DEM and Derived Orthoimages from ALOS-PRISM Data over Sahel-Doukkala (Morocco)&rdquo. The use of individual definitions has been adapted accordingly.

>> Line 101: DEM for area of analysis: DEM for the analyzed area

>> Line 86 to 87: Which interpolation algorithm was used for the current research? And why?

We use type of interpolation Adjust. In earlier studies of historical polish maps, it gave the smallest RMS errors

>> Line 98 to 99: Try to give the horizontal and vertical accuracy of the used topographic maps

These maps are a reproduction of the pre-war maps of the Polish Military Geographic Institute. The picture of the Scherzau 1944 map presented in the drawing is identical to the Szczerców sheet from 1934. The drawing of the topography was created on the basis of painstaking geodetic measurements in the area. The authors chose reproduction as the source material due to the better condition and readability of the spirit levels. The horizontal accuracy of these maps is estimated as follows: 90% of points have accuracy on the map below 1mm. As for the vertical accuracy limits it is cut, contour maps amounting to 2.13 meters. The RMSE was 1.05 meters, roughly half the contour cut.

>> Line 284 to 287: The reviewer doesn&rsquot agree with the authors, because the histogram doesn&rsquot show a great variation of aspects. Most aspects are toward North, NE and NW are shown, whereas, aspects towards are few and can be related to noise and artefacts.

>> Line 287 to 291: You didn&rsquot mention aspects between 320 and 40 which show greater distribution. Try to add an analysis of that.

Our attention has been paid about possibiltiy of noise and the fact that histogram doesn`t show a great variation of aspects. Analysis were changed accordingly. The authors tried to draw attention to the possibility of making such an analysis when examining changes in terrain, without going into detail because of the limited size of the study.


نبذة مختصرة

Prognosis and diagnosis of cardiac diseases frequently require quantitative evaluation of the ventricle volume, mass, and ejection fraction. The delineation of the myocardial wall is involved in all of these evaluations, which is a challenging task due to large variations in myocardial shapes and image quality. In this work, we present an automatic method for extracting the myocardial wall of the left and right ventricles from cardiac CT images. In the method, the left and right ventricles are located sequentially, in which each ventricle is detected by first identifying the endocardium and then segmenting the epicardium. To this end, the endocardium is localized by utilizing its geometric features obtained on-line from a CT image. After that, a variational region-growing model is employed to extract the epicardium of the ventricles. In particular, the location of the endocardium of the left ventricle is determined via using an active contour model on the blood-pool surface. To localize the right ventricle, the active contour model is applied on a heart surface extracted based on the left ventricle segmentation result. The robustness and accuracy of the proposed approach is demonstrated by experimental results from 33 human and 12 pig CT images.


Materials and methods

The orientation-intensity correlation along self-occluding rims and level cuts

The equations for Lambertian shading reveal the correlations between contour orientation and shading intensity that are likely to arise along a level cut. Equation 1 shows the equation for Lambertian luminance in observer-centric spherical coordinates of surface orientation and illumination direction (Mamassian, 1993):

where L is observed luminance, r is Lambertian surface albedo, and i is the illumination intensity. The sum in square brackets expresses Lambert’s cosine law of shading in terms of surface tilt θ s , surface slant ϕ s , illumination azimuth θ i , and illumination elevation ϕ i , all relative to the observer. The subscripts distinguish which pair of spherical coordinates specifies surface orientation ( s ) and which pair specifies the illumination direction ( i ). The maximum function maps negative values of L to zero, which represents surface regions that receive no illumination. If albedo r , illumination strength i , and illumination direction ( θ i , ϕ i ) are approximately constant across the image, Equation 1 can be simplified to a function of surface orientation ( θ s , ϕ s ) only:

where A and B are constants determined by surface albedo, illumination strength, and illumination elevation, and C is a constant determined by illumination azimuth. Note that this function is a cosine of surface tilt with phase C whose amplitude and vertical offset may vary with surface slant across the image. At a self-occluding rim, surface slant approaches 90° (which causes the tilt cosine’s vertical offset A cos ⁡ ϕ s to approach zero and its amplitude B s i n ( ϕ s ) to approach B ) and surface tilt is equal to the rim contour’s orientation. This further constrains the equation for Lambertian luminance to Equation 3:

where θ r i m is the orientation of the self-occluding rim and B and C are constants that determine the amplitude and phase of the cosine function. Note that the rim’s 2D orientation is specified in a full 360° range and not a double-angle 180° range: parallel rim segments bound the surface from opposite sides have opposite orientation (i.e. ± 180°). This equation indicates that at a self-occluding rim, shading luminance decreases as a cosine function of the angular separation between contour orientation and the orientation corresponding to maximal luminance (i.e. where θ r i m = C = θ i , the illumination azimuth). The phase of the cosine is determined by the illumination azimuth and its amplitude is determined by surface slant, Lambertian albedo, illumination elevation, and illumination intensity. For non-Lambertian diffuse reflectance functions with roughness parameters (e.g. Oren and Nayar, 1993), this falloff function will not be an exact cosine, but will at least be monotonic and continuous.

The shading exhibited by surfaces bound by level cut contours is related to contour orientation in a similar way to self-occluding rims. Level cut contour orientation is always equal to surface tilt, but only up to a 180° ambiguity: the adjacent surface could be convex (i.e. the 3D surface normal points out of the shaded region) or concave (i.e. the 3D surface normal points into the shaded region). Slant is unknown along a level cut in principal, but for smooth surfaces, its rate of change along the level cut contour will be constrained and its contribution to shading (the A cos ⁡ ϕ s and B sin ⁡ ϕ s terms in Equation 2) is consequently likely to be dominated by the contribution of surface tilt (the cos ⁡ θ s - C term in Equation 2). The visual system is unlikely to be deterred by any small slant-induced distortions in the shape of the cosine relationship between luminance and contour orientation, which implies that Equation 3 will still approximately hold for level cuts the overall correlation between image intensity and orientation across large areas of the image is therefore likely to remain high.

Experiment 1

Observers

The exact number of observers recruited for each experiment was dependent on availability at least ten observers were recruited for all paired comparison and rating tasks described in Experiments 1 to 4, which has been sufficient to detect the effects of material and shape manipulations in our previous psychophysical studies.

Twenty first-year psychology students participated in Experiment one for partial course credit. They all had normal or corrected-to-normal vision and were naïve to the aims of the study.

Apparatus

Observers were seated approximately 60 cm from a Dell UltraSharp U3014 75.6 cm monitor displaying at a resolution of 2650 × 1600. The display was controlled by a Dell Precision T3600 computer with an Intel Xeon processor running Windows 7 Professional (64-bit). Stimulus presentation and data collection were controlled by OpenGL functions in the Psychophysics Toolbox (version 3.0.10 Brainard, 1997) running in MATLAB (version 2011b Mathworks, RRID:SCR_001622). Observers were surrounded by a black curtain during the experiment to ensure that the monitor was the primary source of light. Head and eye movements were not restricted. The same apparatus was used for all following experiments.

Stimuli

A deformed plane was created using the open-source graphics software Blender (version 2.65 Blender Foundation, RRID:SCR_008606). An initial 20 cm square plane was recursively subdivided four times, then deformed by transforming the height of each vertex using a random ‘distorted noise’ texture generated within Blender, which warps one random noise texture according to the value of another. The contrast of the noise texture was set to 0.25, which ensured that the texture’s intensity was globally continuous (i.e. did not clip). A Catmull-Clark subdivision surface modifier with four iterations was then added to smooth the final surface (Halstead et al., 1993). The surface was rendered with Lambertian reflectance (achromatic albedo of r = 0.3 ) under a collimated light source with 90° azimuth (top-down), 45° elevation from the viewing direction, and a strength of 5. The camera was positioned 20 cm away from the center of the deformed plane and set to orthographic view with 1.8 magnification to just crop out the square boundary of the planar surface. The rendered image was saved as a 1024×1024 16-bit TIFF image and tone-mapped to 8-bit grayscale RGB in Adobe Photoshop (Adobe, RRID:SCR_014199). The final image is depicted in Figure 1. The procedure used to generate the homogenous gray masks is described in the main text. The final twelve masked stimuli are depicted in Figure 2—figure supplement 1 (‘convex’ masks) and Figure 2—figure supplement 2 ('bistable' masks).

إجراء

Perceived focus was measured using a paired comparison task. Each of the twelve stimuli was compared with each other stimulus across 66 trials. The stimuli were centered in the left and right halves of the display against a black background. In each trial, observers were instructed to select the image in which the visible gradients appeared most focused. The order of trials and arrangement of stimuli within each trial (left vs. right) were random. Perceived surface curvature sign was measured for the same observers using a three-alternative forced choice task. Each stimulus was presented in the center of the display against a black background above three buttons labeled ‘bumps,’ ‘dents,’ and ‘neither.’ Observers were instructed to click the option in each trial that best represented their overall perception of shape from the visible gradients in the image. They were specifically instructed to inspect the entire image before making their decision. The twelve stimuli were presented once in random order.

Experiment 2

Observers

Fifteen observers participated in Experiment 2. One observer was an author (SM). All other observers were recruited from university colleagues, as the study took place outside semester, were naïve to the aims of the studies, and had normal or corrected-to-normal vision.

Stimuli

Sixteen sets of level cut contours were created by first generating sixteen surfaces similar to the surface in Figure 1 (using different random noise textures), then intersecting each surface with a frontoparallel plane. We then used these level cut contours to define the paths of artificial shaded ribbons in MATLAB. The ribbons were centered on the contours and had a uniform width of two pixels. Ribbon orientation was defined in a 360° space by the direction of the 2D normal vector corresponding to the tilt of the terrains used to generate the level cuts (i.e. the normal vectors that point from the gradients into the mask along the level cut mask contours). Ribbon luminance was then defined as a function of ribbon orientation as shown in Equation 4:

where L is shading luminance between zero (black) and one (white) and N is the 2D unit normal vector to the ribbon (which corresponds to 3D surface tilt on the original surface). This equation causes luminance to decrease from 0.8 to 0.2 as a linear function of the angle between ribbon orientation and 90°. The ribbon is brightest where its orientation is equal to 90° and darkest where its orientation is equal to 270°. The background in each image had a luminance value of 0.5, which was the same luminance value exhibited by the exactly vertical segments of the ribbons. These luminance values were scaled to 8-bit achromatic RGB luminance values for display. The resulting shading appears highly similar to the corresponding Lambertian shading on the original rendered surfaces, but varies as a linear function of ribbon orientation instead of obeying Lambert’s cosine law. We employed this linear shading approximation to simplify the large volume of correlation analyses performed during the experiment. The difference between these two monotonically decreasing functions is negligible for the purposes of our analysis, as cosine and linear falloff functions have a Pearson correlation coefficient of 0.979. An example of a perfectly correlated ribbon is depicted in the left panel of Figure 4.

We systematically weakened the correlation between ribbon orientation and luminance by mixing the linear shading with progressively larger amounts of gradient noise. To accomplish this, we analyzed the Fourier amplitude spectra of the sixteen surfaces used to generate the level cuts for the ribbons and coded a 2D noise generator to generate noise textures that approximately matched the average amplitude spectrum of the shading gradients exhibited by these surfaces. Geometrically identical ribbon paths (two pixels wide) were cut out of these noise textures and mixed with the linearly shaded ribbons in thirteen different proportions. The amount of noise in these mixed ribbons ranged from 0% (which preserves the perfect linear correlation) to 100% (which destroys the linear correlation completely). The intermediate noise values were 15%, 30%, 35%, 40%, 45%, 50%, 55%, 60%, 65%, 70%, and 85%. Note that these values are not spaced at regular intervals, but were instead chosen to generate an approximately uniform distribution of correlation coefficient values. A new random noise texture was generated in real time for each shaded ribbon presented. Example stimuli with 50% and 100% noise are shown in Figure 4.

We measured the global correlation between contour orientation and shading luminance in each ribbon image presented to observers. This was accomplished in several steps for each image. First, we used the in-built edge function in MATLAB to extract the contours from the binary level cut mask. We then calculated discrete approximations of contour orientation in 9 × 9 blocks of pixels using the regionprops function, but the resulting orientation values only range from 0° to 180° and do not distinguish between parallel contour segments with opposing normal vectors (i.e. on opposite sides of the mask). We rectified this using a custom program that tests which side of the contour corresponds to the mask and which corresponds to the visible gradients at each pixel along the contour. Contour segments that were detected as bounding the mask from above had their orientation values translated into a range from 180° (a right mask edge) to 360° (a left mask edge). These orientation values match the orientation of 2D normal vectors pointing outward from the gradients into the mask (which would in turn correspond to surface tilt at a convex level cut or self-occluding rim). The code for ribbon generation and correlation computation is available on GitHub (Mooney, 2019 copy archived at https://github.com/elifesciences-publications/contour-covariation).

We calculated sixteen orientation- correlations for each image using sixteen different potential values for the illumination azimuth, which determines which contour orientation corresponds to the brightest shading. The azimuth values increased from 0° to 337.5° in increments of 22.5°. These multiple correlations were measured to account for the possibility that the ribbon noise would induce incidental correlations consistent with illumination directions other than the original top-down direction. Each correlation was calculated by converting the contour orientation values into angular separation values from the azimuth, then computing the Pearson correlation coefficient between angular separation and image intensity at each pixel along the ribbon. The final correlation value ρ for that stimulus was set to the maximum correlation detected across all sixteen potential illumination azimuth values. The correlations were derived in real time throughout the task due to the random noise used to generate each stimulus. Correlations for the example stimuli depicted in Figure 4 are shown in the bottom-right corner of each image. Note that the shaded ribbons with no gradient noise exhibit almost perfect correlations as designed. All correlation coefficients greater than 0.2 were consistent with 90° illumination azimuth, which indicates that there were no strong correlations consistent with arbitrary illumination directions in the experiments.

إجراء

Perceived 3D shape strength was measured using a paired comparison task. Observers were shown all possible pairs of the thirteen ribbon noise values in random order. The shaded ribbon paths displayed in each trial were randomly chosen from the sixteen possible sets of contours and were mixed with new randomly generated noise textures in every trial. Observers were instructed to select the image that appeared most vividly three-dimensional overall and were told to fully inspect both images before deciding. The orientation-intensity correlation for each stimulus was derived in real time during the experiment for later analysis.

Experiment 3

Observers

Ten observers participated in Experiment 3. One observer was the author (SM). All other observers were recruited from university colleagues, were naïve to the experimental aims, and had normal or corrected-to-normal vision.

Stimuli

The stimulus geometry was created in the same way as Experiment 1, but the noise texture used to deform the surface had a contrast value of 1. This clipped the noise intensity to black below a level of 0.5, which restrained the height of the deformed surface to a minimum value (i.e. the concave parts of the surface in Figure 1 became flat). The same subdivision modifier was then applied to the surface to smooth over the abrupt discontinuities in surface orientation created by the clipped noise, and the material, illumination, and camera parameters were otherwise identical. A level cut condition was then re-created from the smoothed surface by truncating it with a flat frontoparallel plane positioned 0.1 cm in front of the flat planar regions. The resulting combined surface exhibits sharp level cut contours along the paths where the surfaces intersected, which are similar to the contours in Experiment 1.

Five optical defocus conditions were applied to both the smoothed and level cut geometry conditions by manipulating virtual camera parameters. In the ‘no blur’ condition, no defocus was used. The four conditions with blur were created by combining two different focal lengths with two lens aperture values. In the two ‘background blur’ conditions, focal length was set to the average distance of the peaks of the five highest bumps (19.3 cm). In the ‘foreground blur’ conditions, focal length was set to the distance of the intersecting plane (19.9 cm). The weak and strong blur conditions for each focal length were defined by setting the F-stop value to 2.8 and 1.4, respectively. The stimuli were rendered to 1024 × 1024 16 bit TIFF images, collated, and simultaneously tone-mapped to 8-bit RGB in Adobe Photoshop. The final ten stimuli are depicted in Figure 6. The top row depicts the smoothed surface with no intersecting plane and the bottom row depicts the level cut surface with the intersecting plane. From left to right, the columns depict the strong background blur, weak background blur, no blur, weak foreground blur, and strong foreground blur conditions.

إجراء

Perceived focus was measured using a paired comparison task identical to the task used in Experiment 1, but due to the lower number of stimuli, the full block of 45 pairs was shown twice in random order to each observer.

Experiment 4

Observers

Twenty first-year psychology students participated in the focus and gloss tasks of Experiment four for partial course credit. They all had normal or corrected-to-normal vision and were naïve to the aims of the study. Five psychophysically experienced observers participated in the shape task, including an author (SM). This number of observers has been sufficient to detect the effects of surface manipulations on the gauge figure task, which involves a very large number of trials. All observers other than the author were naïve to the aims of the study.

Stimuli

The deformed planar surface was created in a similar way to Experiment 3, but the surface was not subdivided after deformation with the high-contrast noise texture. This creates sharp level-cut discontinuities in shape that separate smooth bumps from a planar background, and was done to effectively include the intersecting plane as part of the rendered scene rather than adding it to the image as a mask. Three different reflectance functions were used to create low-roughness specular (‘smooth gloss’), moderate-roughness specular (‘rough gloss’), and shading-only (‘matte’) conditions. All three reflectance functions had a diffuse Lambertian component with 95% strength and achromatic albedo r = 0.3 . The smooth gloss and rough gloss conditions had additional specular reflectance components defined by the Beckmann BRDF with 5% strength and roughness coefficients k = 0.025 (smooth gloss) and k = 0.1 (rough gloss).

We created five different blur conditions by simulating different types of optical defocus in Blender. This was accomplished by changing the properties of the virtual camera, which was positioned at 20 cm from the planar base of the bumpy surface. The ‘no blur’ condition had no optical defocus. In the ‘foreground blur’ and ‘background blur’ conditions, the camera’s focal length was set to the distance between the camera and the planar base of the surface (20 cm) or the closest point on the main visible ridge in the center-left part of the image (18.5 cm), respectively. The weak and strong versions of each blur condition were generated by setting the virtual camera’s aperture to F-stop values of 2.8 and 1.4, respectively. Camera zoom was set to 150 in all conditions to just crop out the square boundary of the deformed plane. The stimuli were illuminated using a natural light field to test whether misperceptions of optical blur occur in more realistic viewing conditions, which are particularly important for the appearance of glossy materials (Fleming et al., 2003 Pellacini et al., 2000). The light field used was ‘Meadow Trail’, which we have used previously (Mooney and Anderson, 2014). The images were rendered to 1024 × 1024 16 bit TIFF images in Blender, then simultaneously tone-mapped to 8-bit RGB in Adobe Photoshop. The final fifteen stimuli are depicted in Figure 8. The top, middle, and bottom rows show the matte, rough gloss, and smooth gloss materials, respectively. From left to right, the columns depict the strong background blur, weak background blur, no blur, weak foreground blur, and strong foreground blur conditions.

إجراء

Perceived focus and gloss were measured using paired comparison tasks in the same way as Experiment 1. Perceived 3D shape was measured for six of the stimuli: the smooth gloss and matte surfaces with no blur, strong background blur, and strong foreground blur (outlined in red in Figure 8). We employed the gauge figure task to measure shape (see Koenderink et al., 1992). Observers adjusted gauge figure probes at twenty points in a horizontal line along the central ridge in the bottom-left quadrant of each image. In each trial, observers adjusted the gauge figure until its disc appeared to lie in the tangent plane to the surface and its rod matched the surface normal. Observers completed four repeats of each of the six images. The images were presented in pseudo-random order to ensure no image was seen twice in a row and the twenty probes for each image were presented in random order. No time limit was given, and observers took approximately forty minutes to complete the experiment.


شاهد الفيديو: How to generate quality contour lines using ArcGIS شرح استخراج وتنعيم خطوط الكنتور في برنامج