خوراک پی سی کدنویس

ورود کاربران

آمار سایت

اعضا : 431
محتوا : 74
پیوندها : 6
بازدیدهای محتوا : 245433

حاضرین در سایت

 73 مهمان حاضر

برای نمایش بهتر سایت، از مرورگر استاندارد فایرفاکس استفاده کنید! مرورگر اینترنت اکسپلورر متعلق به دهه گذشته است!

firefox icon

Valid XHTML 1.0 Transitional Valid CSS!

شروع کار با OpenCV

2 امتیاز

برای شروع کار با OpenCV ابتدا باید، کتابخانه آن را دریافت کرده و نصب کنید. برای دریافت OpenCV روی لینک زیر کلیک کنید و آخرین نسخه را دانلود کنید:

دانلود نسخه 2.1 OpenCV

پس از نصب کتابخانه، باید مسیر فایلهای آن را در ویژوال استودیو اضافه کنید. مثلا اگر آن را در مسیر E:\OpenCV2.1\ نصب کرده اید، باید مسیر E:\OpenCV2.1\include\opencv را به Include Directories و مسیر E:\OpenCV2.1\lib را به Library Directories اضافه کنید. بهتر است به پوشه lib رفته و تمام پسوندهای 210 را از کتابخانه پاک کنید تا در صورت به روز رسانی، نامگذاری فایلهای کتابخانه اشکال ایجاد نکند. مثلا cv210.lib را به cv.lib تغییر دهید. حال آماده ایم تا اولین برنامه را بنویسیم.

در اولین برنامه قصد داریم فقط یک تصویر را نمایش دهیم.

یک پروژه کنسول ایجاد کنید و خطوط زیر را در آن بنویسید:

 
// in the name of allah
// The first Open CV example
// Developed by http://www.P30CodeNevis.ir
// 2010-11-11
 
#include "stdafx.h"
 
// include standard OpenCV headers
#include "cv.h"
#include "highgui.h"
 
#ifdef _DEBUG
   #pragma comment (lib, "highguid.lib")
   #pragma comment (lib, "cxcored.lib")
#else
   #pragma comment (lib, "cxcore.lib")
   #pragma comment (lib, "highgui.lib")
#endif
 
//0 to use new style, 1 for old style
#define USE_OLD_STYLE 1
 
using namespace cv; // for new c++ style
 
int main( int argc, char** argv ) 
{
   const char* imagename = argc > 1 ? argv[1] : "camera-man.jpg";
 
#if USE_OLD_STYLE
   /////////////////////////////////////////////////////////////////
   /// old C style
   IplImage* img = cvLoadImage(imagename);
   cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
   cvShowImage( "Example1", img );
   cvReleaseImage( &img );
#else
   /////////////////////////////////////////////////////////////////
   /// New C++ style (its also very similar to MATLAB style)
   // Unfortunately this new style has some bugs and may produce exceptions
   Mat img = imread(imagename);
   namedWindow("Example1", CV_WINDOW_AUTOSIZE );
   imshow("Example1", img);
   //img is an instance of class Mat and will be destroyed automatically so we do not call cvReleaseImage
#endif
 
   cvWaitKey(0);
   cvDestroyWindow( "Example1" );
}
 
 

توضیح برنامه

دو فایل cxcore.lib و highgui.lib و یا نسخه های دیباگ آنها که پسوند d دارند، برای کار با تصویر و نمایش آن در پنجره لازم هستند. چند خط اول برنامه مسئول این کار هستند. متاسفانه یا خوشبختانه OpenCV در حال پوست انداختن است و قصد دارد ساختار قدیمی خودش را که با C خالص بود تغییر داده و به سمت ++C مهاجرت کند و از نسخه 2 به بعد این کار را آغاز کرده است. لذا در حال حاضر هم ناچار است توابع قدیمی را پشتیبانی کند و هم ساختار شیءگرا را در قالب فضای نام cv اضافه کرده است. در این برنامه امکان استفاده از هر دو ساختار وجود دارد، تنها کافیست مقدار USE_OLD_STYLE را بین صفر و یک عوض کنید.

تصویری که قرار است بارگذاری کنیم یا به عنوان پارامتر ارسال می شود یا باید اسمش camera-man.jpg باشد! و در مسیر پروژه قرار داشته باشد. برای بارگذاری تصویر به ساختار قدیمی از تابع cvLoadImage استفاده می کنیم که خروجی آن اشاره گری به یک struct از نوع IplImage است و در ساختار جدید از imread و خروجی آن از نوع کلاس Mat است (شبیه توابع MATLAB ). تابع cvNamedWindow یا  namedWindow برای ایجاد یک پنجره ساده است و در نهایت تابع cvShowImage یا imshow برای نمایش تصویر روی پنجره می باشد.

تابع cvWaitKey  با پارامتر صفر آنقدر صبر می کند تا کلیدی فشرده شود.

دقت داشته باشید در حالت استفاده از توابع ++C احتمال زیاد باخطاها و exception های عجیب و غریب روبه رو خواهید شد و برنامه به خوبی اجرا نمی شود. دلیلش در همان پوست انداختن است. به عبارتی باگ دارد!

اگر خدا بخواهد و مشتری پیدا شود، برنامه های پیشرفته تری! هم با OpenCV خواهیم نوشت.

دانلود پروژه تحت visual c++ 2010

  • امیر علی
    avatar
    واقعا دستتون درد نکنه! این همون چیزیه که می خواستم! ما داریم روی پروژهimage processing کار می کنیم که حتما باید با open CV باشه! خواهشا ادامه بدین!
  • jojo  - مشکل دانلود
    avatar
    من نتونستم دانلود کنم فکر کنم به کشور گیر می داد :(
  • مدیر سایت
    avatar
    ظاهرا برای دانلود کتابخانه باید از ف-ی.ل.ت-ر ش.ک.ن استفاده کنید
  • ahmad samiee  - تشکر
    avatar
    استاد دستتون درد نکه :cheer:
    کاشکی همه ی اساتید مثه شما بودن :(
    استاد حتما ادامه بدین هر کمکی هم اگه نیاز داشتین و فکر کردین من می تونم انجام بدم در خدمتم :cheer:
  • مسلم
    avatar
    سلام استاد
    متاسفانه منم نتونستم دانلودش کنم
    ولی شدیدا متقاضی آموزش این برنامه هستم
    با تشکر
  • jojo  - مشکل دانلود
    avatar
    با فیلتر ش ک ن نتونستم دانلود کنم :(
  • امیر
    avatar
    من هر هفته یه بار به اینجا سر میزدم، دیدم بالاخره آپ کردین خوشحال شدم. مبحث خیلی جالبی هم شروع کردین، خواهشا ادامه بدین
  • balal_art  - مشکل تنظیمات
    avatar
    سلام من ++C اکسپرس دانلود ونصب کردم و OpenCV 2.2 رو دانلود ونصب کردم ولی نمی تونم همونطور که گفته بودید Include Directories تنظیم کنم
اظهار نظر
مشخصات شما:
گراواتار enabled
نظر:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):s:!::?::idea::arrow:
امنیت
کد آنتی اسپم نمایش داده شده در عکس را وارد کنید.