- التعرف على الوجه
- أنظمة التعرف على القزحية
- التعرف على الإيماءات
- التفاعل بين الإنسان والحاسوب (HCI)
- الروبوتات المتنقلة
- تحديد الكائن
- التقسيم والاعتراف
- رؤية مجسمة: إدراك العمق من كاميرتين
- الواقع المعزز
- وحدات البكسل ذات قيمة كثافة أقل من العتبة.
- وحدات البكسل التي لها قيمة كثافة أكبر من العتبة.
يتم أولاً تحويل صورة RGB المدخلة إلى صورة ذات تدرج رمادي قبل الانتهاء من تحديد العتبة.
أنواع العتبة
من المجموعتين اللتين تم الحصول عليهما في وقت سابق، المجموعة التي تضم أعضاء بكثافة بكسل أكبر من العتبة المحددة هي تعيين Max_Value أو في حالة التدرج الرمادي بقيمة 255 (أبيض). تم ضبط شدة البكسل الخاصة بأعضاء المجموعة المتبقية على 0 (أسود).
إذا كانت قيمة كثافة البكسل عند (x y) في الصورة المصدر أكبر من العتبة، فسيتم تعيين القيمة في الصورة النهائية على maxVal.
الجرد. العتبة الثنائية هي نفس العتبة الثنائية. يتمثل الاختلاف الأساسي الوحيد في عتبة Inv.Binary، حيث يتم تعيين المجموعة التي لها شدة بكسل أكبر من العتبة المحددة على "0" بينما يتم تعيين وحدات البكسل المتبقية ذات الشدة الأقل من العتبة على maxVal.
إذا كانت قيمة كثافة البكسل عند (x y) في الصورة المصدر أكبر من العتبة، فسيتم تعيين القيمة في الصورة النهائية على 0 وإلا فسيتم ضبطها على maxVal.
يتم اقتطاع المجموعة التي لها شدة بكسل أكبر من العتبة المحددة إلى العتبة المحددة أو بمعنى آخر يتم تعيين قيم البكسل لتكون نفس العتبة المحددة. تظل جميع القيم الأخرى كما هي.
إذا كانت قيمة كثافة البكسل عند (x y) في الصورة المصدر أكبر من العتبة، فسيتم تعيين القيمة في الصورة النهائية على العتبة وإلا فلن تتغير.
تقنية عتبة بسيطة جدًا حيث نقوم بضبط كثافة البكسل على "0" لجميع وحدات البكسل في المجموعة التي لها قيمة كثافة بكسل أقل من العتبة.
إذا كانت قيمة كثافة البكسل عند (x y) في الصورة المصدر أكبر من العتبة، فلن تتغير القيمة عند (x y) في الصورة النهائية. تم ضبط جميع وحدات البكسل المتبقية على "0".
على غرار التقنية السابقة، قمنا هنا بتعيين كثافة البكسل على "0" لجميع وحدات البكسل في المجموعة التي لها قيمة كثافة بكسل أكبر من العتبة.
إذا كانت قيمة كثافة البكسل عند (x y) في الصورة المصدر أكبر من العتبة، فسيتم تعيين القيمة عند (x y) في الصورة النهائية على "0". جميع قيمة البكسل المتبقية لم تتغير. لتجميع برامج OpenCV تحتاج إلى تثبيت مكتبة OpenCV على نظامك. سأقوم بنشر برنامج تعليمي بسيط لنفسه في الأيام القادمة. إذا كنت قد قمت بالفعل بتثبيت OpenCV، فقم بتشغيل الكود أدناه مع صورة الإدخال التي تختارها. CPP // CPP program to demonstrate segmentation // thresholding. #include #include #include #include using namespace cv; int main(int argc char** argv) { if (argc != 2) { cout << ' Usage: ' ' ' << endl; return -1; } int threshold_value = 0; // Valid Values: 0 1 2 3 4 int threshold_type = 2; // maxVal useful for threshold_type 1 and 2 int maxVal = 255; // Source image Mat src = imread(argv[1] 1); cvNamedWindow('Original' CV_WINDOW_NORMAL); imshow('Original' src); Mat src_gray dst; // Convert the image to GrayScale cvtColor(src src_gray CV_BGR2GRAY); // Create a window to display results cvNamedWindow('Result' CV_WINDOW_NORMAL); createTrackbar('Threshold' 'Result' &threshold_value 255); while (1) { threshold(src_gray dst threshold_value maxVal threshold_type); imshow('Result' dst); waitKey(1); } }