بله درست متوجه شدید.
در دیگر سیستم عامل ها مثل مک یا لینوکس توابعی شبه به OpenCV وجود داره؟
خود کتابخانه OpenCV کاملا مالتی پلتفرم هست. یعنی اگر برنامه شما تحت OpenCV نوشته شده باشد, بدون تغییر کد برنامه میتونید اونو بر روی سیستم عامل های مختلفی کامپایل و اجرا کنید.
اما در سطح پایینتر یعنی توابع اختصاصی سیستم عامل ها یا همان API های سیستم عامل ها قطعا توابعی برای یکسری عملیات سطح پایین برای پردازش تصویر در هر سیستم عاملی(windows, OS X, linux) وجود دارد و کتابخانه هایی مثل OpenCV در اصل این توابع رو با کلی امکانات اضافی دیگر بصورت جامع و با یک اینترفیس ثابت (مالتی پلتفرم) کپسوله میکنند و کار برنامه نویسان رو ساده میکنند.
مثلا شما برای بارگزاری یک عکس در 3 سیستم عامل windows, OS X, linux به سه تابع مختلف با نامها و پارامتر های مختلف نیاز دارید
مثال (توابع فرضی هستند و درست نیستند):
windows:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
linux:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
OS X:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
OpenCV (multi-platform
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
OpenCV تمام این 3 تابع رو برای شما بصورت 1 تابع واحد کپسوله میکند و برنامه شما میتواند برای بارگزاری تصاویر PNG بر روی هر 3 سیستم عامل از این تابع بدون هیچ تغییری استفاده کند و در این شرایط وظیفه تشخیص اینکه کدام تابع (با توجه به سیستم عامل) مناسب است به عهده OpenCV میباشد.
البته مزایای OpenCV بسیار فراتر از اینها هست و این فقط یک مثال کوچک از مزیت مالتی پلتفرم بودن این کتابخانه بود.
پس من باید به مطالعه ی سورس های openvc و هم چنین الگوریتم های مربوطه بپردازم..
OpenCV بصورت OpenSource و رایگان میباشد و میتونید سورس های اونو بصورت کامل دریافت کنید و بررسی کنید.
البته نا گفته نماند که این کار فقط برای شخصی مثل شما که میخواهید دقیقا از نوع پیاده سازی و روش کامل پردازش تصویر مطلع شوید توصیه میشود وگرنه برای استفاده از OpenCV هیچ لزومی نداره که سورس اونو بررسی کنیم.
یک جستجو هم داخل amazone برای کتابهای الگوریتم تشخیص چهره انجام بدید مطمئنن کتابهای خوبی میتونید پیدا کنید.