سؤال

أعلم أن هذا ليس له صلة بالبرمجة، لكني بحاجة إلى معرفة كيفية عمل مصفوفة الالتواء لوظيفة PHP GD.لقد بحثت كثيرًا في Google، لكن لم أجد أي شيء يشرح ذلك جيدًا.

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

المحلول

ذهبت إلى حمولة من النظرية وراء مرشحات التنزل هنا هنا:

كيف يمكنني طمس Gaussian صورة دون استخدام أي وظائف Gaussian قيد الإنشاء؟

نصائح أخرى

تستبدل العملية كل بكسل بالمتوسط ​​المرجح لوحدات البكسل المحيطة به، حيث يتم إعطاء الأوزان بواسطة المصفوفة.فيما يلي مثال لمصفوفة الالتواء:

1 1 1
1 1 1
1 1 1

ما يفعله هذا هو استبدال كل بكسل بمتوسط ​​قيمة الكتلة 3x3 المتمركزة على ذلك البكسل.هنا آخر:

0 0 0
0 1 0
0 0 0

هذه المصفوفة لا تفعل أي شيء، إنها تعطيك النسخة الأصلية.

يمكن أن تكون الأوزان سلبية أيضًا.تطرح هذه المصفوفة متوسط ​​قيمة البكسلات المجاورة للبيكسل:

 0 -1  0
-1  4 -1
 0 -1  0

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

لا أعرف خصيصا للحصول على PHP، ولكن بشكل عام يتم استخدام مصفوفة التناسف لتنفيذ أنواع معينة من تأثيرات معالجة الصور.

مثال بسيط مأخوذ من دليل PHP على GD http://www.php.net/manual/en/function.imageconvolution.php.:

دعنا نقول أن لديك مصفوفة مثل هذا:

$M = array(array( 2,  0,  0),
           array( 0, -1,  0),
           array( 0,  0, -1));

عند تطبيق مصفوفة التناسف إلى صورة، ثم لكل بكسل الموجود في (x، y) في الصورة، يصبح بكسل المقابل في الإخراج:

$I = $in_image;
$out_image[x,y] = $I[x-1,y-1]*$M[0][0] + $I[x,y-1]*$M[0][1] + $I[x+1,y-1]*$M[0][2]
                + $I[x-1,y]  *$M[1][0] + $I[x,y]  *$M[1][1] + $I[x+1,y]  *$M[1][2]
                + $I[x-1,y+1]*$M[2][0] + $I[x,y+1]*$M[2][1] + $I[x+1,y+1]*$M[2][2];

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

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

مصفوفة التنزل يعمل على كل قناة من بكسل الصورة بشكل مستقل.
لذلك عليك أن تتعلم القنوات أول.
ثم، يمكنك "اللعب" مع هذه المصفوفة بشكل تفاعلي إذا كان لديك فوتوشوب: انتقل إلى عوامل تصفية القائمة -> Other-> مخصص. يمثل البند المركزي للمصفوفة بكسل الحالي، ويمثل كل شيء آخر محيط بكسل. ولا تنسى قيمة "الحجم" في الأسفل.
أعتقد أنه يمكنك بسهولة فهم الطريقة التي يعمل بها هذه المصفوفة.
قد يكون لديك نظرة على هذا الشيء هنا. وبعد يصف مصفوفة التنفض أيضا.

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