ما هو OpenCV ولماذا نحتاجه؟
\n\nOpenCV (مكتبة رؤية الكمبيوتر مفتوحة المصدر) هي مكتبة متعددة المنصات ومفتوحة المصدر، مصممة لمهام رؤية الكمبيوتر والتعلم الآلي. توفر أكثر من 2500 خوارزمية محسّنة تغطي جميع مجالات رؤية الكمبيوتر تقريبًا: من معالجة الصور البسيطة (الترشيح، التحويلات الهندسية) إلى المهام المعقدة (التعرف على الوجوه، تتبع الأجسام، إعادة البناء ثلاثي الأبعاد، تحليل الفيديو).
\n\nالمكتبة مكتوبة بلغتي C++ و C، مما يضمن أداءً عاليًا، ولها روابط بلغات Python و Java و MATLAB وغيرها. في هذا الدليل، سنركز على استخدام OpenCV من C++ تحديدًا - وهذا هو الخيار الأمثل لأنظمة الإنتاج حيث تكون سرعة الأداء وإدارة الذاكرة الفعالة أمرًا بالغ الأهمية.
\n\nلماذا نحتاج OpenCV؟
\n- \n
- معالجة الصور: تغيير الحجم، التدوير، الترشيح، تحسين التباين، تصحيح الألوان. \n
- تحليل الفيديو: قراءة/كتابة الفيديو، اكتشاف الحركة، تتبع الأجسام. \n
- التعرف على الأجسام: الوجوه، السيارات، النص (OCR)، الإيماءات. \n
- معايرة الكاميرا: إزالة التشوهات، الرؤية المجسمة. \n
- التعلم الآلي: مصنفات مدمجة (SVM, KNN, Decision Trees) والتكامل مع DNN (الشبكات العصبية العميقة) للعمل مع نماذج TensorFlow و Caffe و PyTorch. \n
تثبيت OpenCV لـ C++
\n\nعلى عكس Python، حيث يكفي أمر واحد pip install opencv-python، فإن تثبيت OpenCV لـ C++ يتطلب التجميع أو استخدام حزم ثنائية جاهزة. دعنا نستعرض الطرق الرئيسية.
1. التثبيت عبر مدير الحزم (Linux/macOS)
\nUbuntu/Debian:
\nsudo apt update\nsudo apt install libopencv-dev\nmacOS (Homebrew):
\nbrew install opencv\n\n2. التثبيت عبر vcpkg (Windows, Linux, macOS)
\nvcpkg هو مدير حزم متعدد المنصات من Microsoft. قم أولاً بتثبيت vcpkg:
\ngit clone https://github.com/Microsoft/vcpkg.git\ncd vcpkg\n./bootstrap-vcpkg.sh # Linux/macOS\n.\\bootstrap-vcpkg.bat # Windows\nثم قم بتثبيت OpenCV:
\n./vcpkg install opencv4\nبعد التثبيت، قم بربط المكتبة في CMake:
\ncmake_minimum_required(VERSION 3.10)\nproject(MyOpenCVProject)\nfind_package(OpenCV REQUIRED)\nadd_executable(main main.cpp)\ntarget_link_libraries(main ${OpenCV_LIBS})\n\n3. التجميع من المصدر (مستوى متقدم)
\nهذه الطريقة تمنحك أقصى تحكم في الوحدات المضمنة والتحسينات:
\ngit clone https://github.com/opencv/opencv.git\ncd opencv\nmkdir build && cd build\ncmake -D CMAKE_BUILD_TYPE=RELEASE \\\n -D CMAKE_INSTALL_PREFIX=/usr/local \\\n -D WITH_TBB=ON \\\n -D WITH_V4L=ON \\\n -D WITH_QT=ON \\\n -D WITH_OPENGL=ON ..\nmake -j$(nproc)\nsudo make install\n\nبداية سريعة: تحميل وعرض صورة
\nدعنا نتحقق من تثبيت OpenCV بشكل صحيح عن طريق كتابة برنامج بسيط يقوم بتحميل صورة، وتحويلها إلى تدرج الرمادي، وعرضها.
\n\n#include <opencv2/opencv.hpp>\n#include <iostream>\n\nint main() {\n // تحميل الصورة\n cv::Mat img = cv::imread("example.jpg");\n if (img.empty()) {\n std::cerr << "فشل تحميل الصورة!" << std::endl;\n return -1;\n }\n\n // التحويل إلى تدرج الرمادي\n cv::Mat gray;\n cv::cvtColor(img, gray, cv::COLOR_BGR2GRAY);\n\n // عرض كلتا الصورتين\n cv::imshow("Original", img);\n cv::imshow("Gray", gray);\n\n // انتظار الضغط على مفتاح\n cv::waitKey(0);\n cv::destroyAllWindows();\n\n return 0;\n}
أيضاً في المكتبة
توصيات