OpenCV، مكتبة الرؤية الحاسوبية مفتوحة المصدر، أداة قوية لمهام الرؤية الحاسوبية. بينما تُعد بايثون غالبًا لغة الاختيار، إلا أن Rust تقدم مزايا كبيرة في الأداء وسلامة الذاكرة. يهدف هذا البرنامج التعليمي إلى إرشادك خلال إعداد بيئتك واستخدام OpenCV ضمن مشاريع Rust الخاصة بك.
جدول المحتويات
إعداد Rust
ابدأ بتثبيت Rust باستخدام rustup
، أداة التثبيت الرسمية. قم بزيارة https://www.rust-lang.org/tools/install واتبع التعليمات الخاصة بنظام التشغيل الخاص بك. بعد التثبيت، تحقق من إعدادك بتشغيل rustc --version
و cargo --version
في محطتك.
برنامج Rust الأول الخاص بك
دعونا ننشئ برنامجًا بسيطًا “Hello, world!” للتأكد من أن كل شيء يعمل بشكل صحيح.
- افتح محطتك.
- أنشئ مشروعًا جديدًا باستخدام
cargo new hello_world --bin
. تشير علامة--bin
إلى أننا ننشئ ملفًا قابلًا للتنفيذ ثنائيًا. - انتقل إلى دليل
hello_world
:cd hello_world
. - افتح
src/main.rs
في محرر نصوص. - استبدل المحتويات بما يلي:
fn main() {
println!("Hello, world!");
}
- شغّل البرنامج باستخدام
cargo run
. يجب أن ترى “Hello, world!” مطبوعًا على وحدة التحكم الخاصة بك.
دمج OpenCV
سنستخدم opencv
crate، وهي ربط Rust لـ OpenCV. في ملف Cargo.toml
الخاص بك (الموجود في الدليل الجذر للمشروع الخاص بك)، أضف التبعية:
[dependencies]
opencv = "0.7" // أو أحدث إصدار
تحميل وعرض صورة
دعونا ننشئ برنامجًا يقوم بتحميل وعرض صورة. استبدل محتويات src/main.rs
بما يلي:
use opencv::{core, highgui, imgcodecs};
fn main() -> Result<(), Box> {
// تحميل صورة
let img = imgcodecs::imread("path/to/your/image.jpg", imgcodecs::IMREAD_COLOR)?;
// التحقق مما إذا تم تحميل الصورة بنجاح
if img.is_empty() {
return Err("Could not load image".into());
}
// عرض الصورة
highgui::imshow("Image", &img)?;
highgui::wait_key(0)?;
Ok(())
}
تذكر استبدال `”path/to/your/image.jpg”` بالمسار الفعلي. قم بالترجمة وتشغيل باستخدام cargo run
. يجب أن تظهر نافذة OpenCV تعرض صورتك. اضغط على أي مفتاح لإغلاقها.
معالجة الأخطاء
يوضح المثال أعلاه معالجة الأخطاء القوية باستخدام نوع Result
. تعامل دائمًا مع الأخطاء المحتملة لمنع تعطل التطبيقات بشكل غير متوقع.
استكشافات أخرى
هذه نقطة انطلاق. يوفر OpenCV في Rust إمكانيات واسعة لمعالجة الصور، والكشف عن الكائنات، وأكثر من ذلك. استكشف وثائق opencv crate للحصول على قائمة كاملة بالوظائف والميزات.