سؤال

أنا أبحث عن وسيلة لإعادة إنشاء التأثير التالي برمجياً:

إعطاء صورة إدخال:
إدخال http://www.shiny.co.il/shooshx/conecarv/q_input.png

أريد تطبيق تأثير "السكتة الدماغية" بشكل متكرر.
الخطوة الأولى تبدو هكذا:
الخطوة 1 http://www.shiny.co.il/shooshx/conecarv/q_step1.png

الخطوة الثانية مثل هذه:
alt text http://www.shiny.co.il/shooshx/conecarv/q_step2.png

وهلم جرا.

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

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

المحلول

في الأساس ، ستكون الخوارزمية المخصصة ، حسب هذا الموضوع:

خذ حي 3 × 3 حول بكسل ، وقدر قناة ألفا ، ثم معرفة ما إذا كان أي من البكسلات 8 حول بكسل لديه قيمة ألفا مختلفة منه. إذا كان الأمر كذلك ، قم برسم دائرة من دائرة نصف قطرها معينة مع المركز في البكسل. للقيام بالداخل/الخارجي ، قم بتعديل قناة ألفا ذات العتبة (نفي للقيام بالجانب الآخر). سيكون عليك أن تضع حية أكبر إذا كان نصف قطر الدائرة أكبر من بكسل (وهو على الأرجح).


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

من أجل القيام بالسكتات الدماغية الداخلية والخارجية ، يمكنك التعاقد/التوسع بمقدار ضعف نصف القطر وطرح الأجزاء التي تتقاطع مع الاختيار الأصلي.

تجدر الإشارة إلى أن الخوارزمية المورفولوجية الأكثر عمومية تتطلب عمليات O (M*n) ، حيث M هو عدد وحدات البكسل من الصورة و N هو عدد العناصر في "عنصر الهيكلة". ومع ذلك ، بالنسبة لبعض الحالات الخاصة ، يمكن تحسين ذلك على عمليات O (M) (على سبيل المثال إذا كان عنصر الهيكلة مستطيلًا أو ماسيًا).

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