יום ראשון, 28 ביולי 2013

CV or not CV, זו השאלה ! | על OpenCV ו-MATLAB

OpenCV היא ספרית פונקציות לביצוע משימות ראיה ממוחשבת בזמן אמת, הכוללת מעל 2500 אלגוריתמים מתקדמים. משמעות הדבר היא שב-OpenCV יש יותר פונקציות לעיבוד תמונה מאשר בסביבת MATLAB, והדבר מקבל חשיבות בהקשרים של ראיית סטריאו וביצוע משימות ראיה ממוחשבת על GPU. בנוסף, OpenCV, הכתובה ב-C++, היא מהירה יחסית, והשם שלה כמובן מרמז על כך שהיא open source, כלומר – חינמית. אבל, והנה מגיע ה"אבל" - הממשק שלה נוראי, וגם התיעוד לא משהו...בנוסף, OpenCV זו "רק" ספריה של פונקציות, בעוד ש-MATLAB היא גם אוסף של פונקציות וגם סביבת עבודה. ומכיוון שחוקרים ומהנדסים רבים אוהבים להשתמש בסביבה הזו, ועדיין רוצים להינות גם מהיכולות של OpenCV, נשאלת השאלה האם ניתן לאכול את העוגה וגם להשאיר אותה שלימה? כלומר – האם ניתן לשלב בין OpenCV ו-MATLAB ? התשובה, כמובן, היא "כן".
כידוע, ניתן לקרוא לקוד C/C++ מתוך סביבת MATLAB באמצעות הפיכתו ל-MATLAB Executable תוך שימוש בפקודה mex. ובצורה דומה, תוך שימוש בממשק ה-MEX ניתן לקרוא גם ל-OpenCV מתוך MATLAB, דבר המאפשר שימוש באלגוריתמים החדשים שב-OpenCV (מתעדכנת כל 3 חודשים) וכן מאפשר להינות הן מהמהירות של האלגורתמים שבה והן מקלות השימוש של MATLAB.
ומהכיוון ההפוך, ניתן להתממשק מסביבת OpenCV לקוד / ספריה אשר נוצרו מקוד MATLAB . מדובר כמובן בקוד / ספריה שהפכו מקוד MATLAB לקוד C++ באמצעות הכלי MATLAB Coder.

למידע נוסף, בקרו בעמוד MATLAB and OpenCV באתר MathWorks.
האם אתם משתמשים ב-OpenCV ? ניסיתם לקרוא לו מתוך MATLAB ? ואת הכיוון ההפוך ניסיתם ?