کتابخانه ی OpenCV (مخفف Open Computer Vision) از پرکاربردترین کتابخانه ها برای پردازش تصویر، بینایی استریو و یادگیری ماشینی است. در این کتابخانه ماژولهای متعددی از کار با تصاویر و ویدیو گرفته تا انواع طبقه بندهای هوشمند مثل شبکه عصبی و SVM وجود دارد و باتوجه به نوع توسعه آن که با همکاری برنامه نویسان از سراسر جهان اتفاق می افتد، روز به روز امکانات تازه ای به آن اضافه می شود.
این کتابخانه برای اکثر سیستم عاملها مثل ویندوز، لینوکس و اندروید در دسترس است. با توجه به اینکه OpenCV نسخه نصبی ندارد، غالبا برنامه نویسان در ابتدای کار، به مشکل می خورند. در آموزش زیر، طی چند گام، فرایند نصب یا پیکربندی OpenCV به منظور استفاده در ویژوال سی را توضیح میدهم.
نحوه پیکربندی OpenCV برای استفاده در Visual Studio
- دانلود نسخه مورد نظر از بخش دانلود OpenCV
- لازم به ذکر است که از سال گذشته نسخه ۳٫۰ این کتابخانه آماده شده و همزمان با نسخه های ۲٫۴ در حال توسعه است، اما برخی توابع و ماژولها (مثل SIFT و SURF) متاسفانه هنوز در این نسخه گنجانده نشده است و بسیاری از ماژولها (مثل ماژول یادگیری ماشین cv::ml) هم تغییرات عجیبی کرده اند و کدهای قبلی باید تغییرات زیادی برای سازگاری انجام دهند. ضمن اینکه این نسخه بعضا باگهایی هم دارد که شاید بهتر باشد لااقل تا به روز رسانی عمده بعدی به نسخه ۳٫۲ صبر کنید.
- در هر صورت اگر نسخه ۳٫۱ را بخواهید به این آدرس و اگر نسخه ۲٫۴٫۱۳ را بخواهید به این آدرس مراجعه کنید (معمولا اجازه دسترسی از ایران نداریم و باید با فیل.تر شک.ن وصل شوید)
- بازگشایی فایلها در یک مسیر مناسب مثلا C:\OpenCV
- دقت کنید که فایلی که دانلود کرده اید یک فایل زیپ است و نه فایل نصبی، لذا باید آن را در جای مناسبی که حداقل یک گیگابایت فضا داشته باشد، Extract کنید.
- پیکربندی متغیرهای محیطی ویندوز
- برای اینکه ناچار نباشیم فایلهای dll مرتبط با OpenCV را هر بار کنار پروژه مان کپی کنیم، کافیست یک بار مسیر این فایلها را به PATH ویندوز اضافه کنیم. برای این منظور دکمه Win+PauseBreak را فشار دهید یا روی My Computer کلیک راست کرده و Properties را انتخاب کنید. سپس روی دکمه Advanced System Settings کلیک کرده و در پنجره جدید، گزینه Environment Variables را انتخاب کنید:
- در پنجره متغیرهای محیطی، متغیر Path را بیابید و دکمه Edit را بزنید. در پنجره جدید اگر ویندوز ۱۰ داشته باشید چیزی شبیه زیر می بینید که باید مسیر فایلهای باینری را در انتهای آن اضافه کنید. اگر هم ویندوز قدیمی تر دارید، انتهای جعبه متنی باز شده، یک نقطه ویرگول (;) بزنید و سپس آدرس مذکور را اضافه کنید. مسیر فایلهای باینری برای ویژوال استودیو ۲۰۱۵ و نسخه ۶۴ بیتی شبیه این است: C:\OpenCV3.1\build\x64\vc14\bin
- دقت کنید که نسخه ۳٫۰ OpenCV برای خلاف نسخه های قبلی فایلهای باینری ۳۲ بیتی (x86) را به طور پیش فرض ندارد و اگر سیستم عامل شما ۳۲ بیتی است باید خودتان سورس این کتابخانه را به صورت ۳۲ بیتی کامپایل کنید یا اینکه از نسخه ی ۲٫۴٫۱۳ استفاده کنید که باینریهای ۳۲ بیتی را هم دارند.
- برای اینکه ناچار نباشیم فایلهای dll مرتبط با OpenCV را هر بار کنار پروژه مان کپی کنیم، کافیست یک بار مسیر این فایلها را به PATH ویندوز اضافه کنیم. برای این منظور دکمه Win+PauseBreak را فشار دهید یا روی My Computer کلیک راست کرده و Properties را انتخاب کنید. سپس روی دکمه Advanced System Settings کلیک کرده و در پنجره جدید، گزینه Environment Variables را انتخاب کنید:
- پیکربندی ویژوال استودیو برای OpenCV
- برای اینکه همیشه بتوانیم از OpenCV استفاده کنیم، کافیست یک بار پروفایل مربوط به Microsoft.Cpp.x64.user را تغییر دهیم. از این پس هر پروژه ای بسازیم، مسیرهای OpenCV را می شناسد. http://shahaab-co.ir/opencv-installation-for-visual-studio
- برای این کار ابتدا باید یک پروژه کنسول ++C بسازیم: برای ایجاد پروژه جدید از منوی فایل گزینه ی New Project را انتخاب کنید، از قسمت نوع پروژه، Visual C++ و سپس Win32 را انتخاب کنید. از سمت راست، گزینه ی Win32 Console Application را انتخاب کرده و در قسمت Name، نام مناسبی برای پروژه انتخاب کنید:
- در ادامه تنظیمات پیش فرض را بپذیرید و Finish را بزنید:
- اکنون برای اینکه قادر به کامپایل و اجرای برنامههای مبتنی بر OpenCV باشیم باید به VC++ بگوییم، کجا کتابخانه OpenCV را پیدا کند. از آن جا که احتمالا پروژه های OpenCV متعددی را در آینده خواهید ساخت، بهترین گزینه تعیین مسیرهای لازم در برگهی مشخصات کاربر است به طوری که نیاز نباشد برای هر پروژه جدید دوباره مسیر کتابخانه را تعیین کنیم. برگه ی مشخصه یک فایل XML هست که محیط پروژه شما را توصیف می کند. برای انجام این کار از منوی View گزینه Property Manager را انتخاب کنید (اگر در منوی View دیده نمی شود، زیرمنوی Other Windows را نگاه کنید).
- سکوی برنامه را از نوار ابزار ویژوال استودیو روی x64 تنظیم کنید:
- در پنجره Property Manager (دقت کنید که با Property Pages و Properties Window اشتباه نشود) روی پوشه Debug یا Release کلیک کرده و برگه مشخصات Microsoft.Cpp.x64.user را انتخاب کرده و دوبار کلیک کنید.
- در برگه مشخصات باز شده، مسیر فایلهای سرآیه و فایلهای library کتابخانه OpenCV را مشخص کنید. مثلا اگر در پوشه C:\OpenCV3.1 کتابخانه را نصب کرده باشید، مسیرهای زیر باید به مسیرهای پیش فرض اضافه شوند (دقت کنید که مسیرهای پیش فرض را اشتباها پاک نکنید که هیچ پروژه شما کامپایل نخواهد شد):
- تنظیمات تمام شد. به منظور سهولت بیشتر در استفاده از کتابخانه، به مسیر include رفته و از پوشه OpenCV2، فایل opencv.hpp را کپی کرده و در پوشه include جایگذاری کنید:
- کامپایل اولین پروژه OpenCV
- در ادامه کد زیر را در فایل اصلی پروژه مثلا در اینجا « LoadImage.cpp » بنویسید و با زدن دکمهی F7 کامپایل کنید. اگر مراحل قبل را درست انجام داده باشید، باید بدون خطا کامپایل شود. در صورتیکه خطایی مشاهده کردید مراحل قبل را بازبینی کنید و کد را هم دوباره چک کنید که اشتباه املایی نداشته باشد.
#include "stdafx.h" // include standard OpenCV headers #include <opencv.hpp> #ifdef _DEBUG #pragma comment (lib, "opencv_core245d.lib") #pragma comment (lib, "opencv_highgui245d.lib") #else #pragma comment (lib, "opencv_core245.lib") #pragma comment (lib, "opencv_highgui245.lib") #endif int main( int argc, char** argv ) { const char* imagename = argc > ۱ ? argv[۱] : "..\\camera-man.jpg"; // read the image cv::Mat img = cv::imread(imagename); // create image window named "camera man" cv::namedWindow("camera man"); // show the image on window cv::imshow("camera man", img); // wait for a key cv::waitKey(۰); }
- دقت کنید که این برنامه تصویری که از طریق خط فرمان به برنامه ارسال شده است و یا تصویر camera-man.jpg که در یک پوشه بالاتر از مسیر پروژه قرار دارد را باز کرده و نشان خواهد داد. اگر می خواهید تصویر دیگری نشان داده شود، آدرس تصویر را اصلاح کنید. اکنون F5 را برای اجرای برنامه بزنید. خروجی برنامه باید شبیه شکل زیر باشد:
- در ادامه کد زیر را در فایل اصلی پروژه مثلا در اینجا « LoadImage.cpp » بنویسید و با زدن دکمهی F7 کامپایل کنید. اگر مراحل قبل را درست انجام داده باشید، باید بدون خطا کامپایل شود. در صورتیکه خطایی مشاهده کردید مراحل قبل را بازبینی کنید و کد را هم دوباره چک کنید که اشتباه املایی نداشته باشد.
سایر عناوین مرتبط با این مقاله:
دمتون گرم. عالی بود
سلام
مدتیه وبلاگتونو دنبال می کنم. قلمتون عالیه
لطفا میشه اسم فونت مورد استفاده توبدنه وبلاگتونو بگید من تو اینسپکت وقتی میزنم B Nazanin رو میاره ولی ب نازنین رو سرچ کردم با فونت بدنتون فرق می کرد.
یا اگه ب نازنین خاصی هست میشه آدرس دانلودشو بزارین.
یک دنیا ممنون
سلام
خواهش می کنم
همون B Nazanin را استفاده کرده ام