Tiny Tech

مقدمه ای بر OpenCV

شروع می کنیم

پس از نصب کتابخانه ی OpenCV طبیعتا اولین کار ما برای اغاز تنظیم محیط برنامه نویسی است.

در ویژوال استودیو بایستی یک پروژه ایجاد کنید و تنظیمات را به گونه ای انجام دهید که ابتدا کتابخانه های ml.lib , cxcore.lib , highgui.lib و cv.lib پیوند داده شوند و پیش پردازنده ها، شاخه های  OpenCV/*/include/…  را برای فایل های سرایند OpenCV جستجو کنند.

این شاخه های “Include” نوعا به نام های C:/programfiles/OpenCV/cv/include و OpenCV/excore/include/… و OpenCV/ml/include/… و OpenCV/otherlibs/highgui/… هستند.

بعد از این که این کار را انجام دادید، می توانید یک فایل جدید C ایجاد کرده و اولین برنامه ی خود را اغاز کنید.

برخی از فایل های سرایند کلیدی خاص می توانند کار شما را بسیار اسان تر کنند.

در فایل های سرایند OpenCV/excore/include/cxtypes.h/… و cxmisc.h، ماکروهای مفید بسیاری وجود دارند که می توانند کار هایی از قبیل مقدار دهی اولیه ساختار ها و ارایه ها، مرتب سازی لیست ها و از این قبیل را انجام دهند.

مهم ترین سرایند ها برای کامپایل کردن cv/include/… و cxcore/include/cxcore.h/… برای بینایی ماشین، otherlibs/highgui/highgui.h/… برای I/O و ml/include/ml.h/… برای یادگیری ماشین هستند.

اولین برنامه- نمایش یک تصویر

OpenCV ابزار هایی برای خواندن انواع فایل های تصویر و ویدئو و یا خواندن مستقیم دوربین را فراهم می کند.

این ابزار ها جزئی از یک بسته ابزار به نام HighGUI هستند که در بسته ی OpenCV قرار دارند.

از برخی از این ابزار ها برای ایجاد یک برنامه ساده که یک تصویر را باز کرده و ان را روی صفحه نمایش می دهد استفاده می کنیم.

مثال: 

یک برنامه ساده OpenCV که یک تصویر را از دیسک بارگذاری کرده و ان را روی صفحه نمایش می دهد.

 

int main( int argc, char** argv){
IplImage* img = cvloadimage(argv[1]);
cvNameWindow("Example1", CV_WINDOW_AUTOSIZE );
cvShowImage("Example1", img );
cvWaitKey(0);
cvReleaseImage( &img);
cvDestroyWindow("Example1");
}

 

زمانی که این برنامه کامپایل و از خط دستور با ارگومان ساده اجرا شود، یک تصویر به حافظه بار گذاری شده و روی صفحه نمایش داده می شود.

سپس برنامه منتظر می شود تا کاربر یک کلید را فشار دهد.

در این زمان پنجره بسته شده و برنامه خاتمه می یابد.

 

در پست بعدی تک تک دستورات را با هم مرور می کنیم.