מדריך להתקנת OpenCV

הפורום הראשי, אתר הרובוטיקה הישראלי

המנהלים: אסף פוניס, גיא יונה

מדריך להתקנת OpenCV

הודעהעל ידי aviv8 » ה' אוגוסט 23, 2012 10:57 pm

הרבה אנשים מסתבכים עם התקנת OpenCV, ותאמינו לי שגם אני הסתבכתי איתה המון עד שהבנתי איך מתקינים.
לצערי הצלחתי להתקין רק את גרסא 2.1, את הגרסאות החדשות והמשוכללות יותר לא הצלחתי.
אבל גם זה משהו :lol:

שלב 1 - הורדה בלי התקנה:
בעיקרון צריך להוריד מהאתר הרשמי את הקבצים, ואז להעביר אותם תהליך כלשהו בעזרת התוכנה CMAKE.
הקטע שהתהליך הזה מסובך, ולי לקח שעות עד שהבנתי מה צריך לעשות.
לכן אני פשוט הביא לכם את הקבצים שאצלי במחשב לאחר שעבר התהליך של CMAKE.
לחץ כאן והורד את הקובץ:
http://www.upf.co.il/file/679022113.html
יש להשים בתיקיה הראשית של כונן C כדי שיהיה נוח לגשת.

שלב 2 - הגדרות בסביבת פיתוח:
אני משתמש בתוכנה "DEV-CPP" שהיא נוחה, התקינו אותה וכנסו בתפריט העליון ל- Tools ואז ל- Compiler Options.

א. בלשונית "compiler" סמנו את ה- V הראשון ורשמו בריבוע שתחתיו את השורה:
קוד: בחר הכל
-L"C:\OpenCV2.1\lib" -lcxcore210 -lcv210 -lcvaux210 -lhighgui210 -lml210


ב. לכו ללשונית "directoris" בתת לשונית "binaries" הוסיפו את השורה הזאת לרשימה:
קוד: בחר הכל
C:\OpenCV2.1\bin


ג. לכו ללשונית "libraries" והוסיפו את השורה הזאת לרשימה:
קוד: בחר הכל
C:\OpenCV2.1\lib


ד. בלשונית "C includes" הוסיפו את השורה הזאת לרשימה:
קוד: בחר הכל
C:\OpenCV2.1\include\opencv


ה. בלשונית "C++ includes" הוסיפו את השורה הזאת לרשימה:
קוד: בחר הכל
C:\OpenCV2.1\include\opencv


לחצו אישור והמשיכו לשלב הבא.


שלב 3 - הגדרת PATH:
את החלק הזה אין לי מושג למה צריך לעשות, אבל אם עשיתי את זה אצלי כנראה שצריך.
לכו למחשב שלי > מאפיינים > מתקדם > משתני הסביבה.
בחלון משתני הסביבה יופיע לכם ריבוע עם רשימה ומתחתיו עוד ריבוע.
בריבוע הראשון, זה שכתוב עליו "משתני משתמש עבור..." יהיה לכם רשומה שנקראת PATH.
סמנו את PATH ואז לחצו על הכפתור "עריכה", את תוכן השדה "ערך משתנה" תעתיקו לקובץ טקסט ריק בשביל שנוכל לראות את כל אורך השדה בבירור.
לשם עליכם להוסיף את השורה:
קוד: בחר הכל
;C:\OpenCV2.1\bin

שימו לב שהסימן ; צריך להפריד בין כל מה שיש שם בשורה הזאת, אז אל תשימו אותו פעמיים אם הוא כבר קיים.


שלב 4 - הרצת קוד התחלתי:
צרו קובץ חדש שיקרא test.cpp בשביל שנבדוק שהכל עובד.
שם תזינו את הקוד הבא:

קוד: בחר הכל
#include <C:\OpenCV2.1\include\opencv\cv.h>
#include <C:\OpenCV2.1\include\opencv\cvaux.h>
#include <C:\OpenCV2.1\include\opencv\highgui.h>
#include <C:\OpenCV2.1\include\opencv\cxcore.h>


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <float.h>
#include <limits.h>
#include <time.h>
#include <ctype.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

        cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );

        CvCapture* capture = cvCreateCameraCapture (0);

        IplImage* frame;

        while(1) {

               frame = cvQueryFrame( capture );

               if( !frame ) break;

               cvShowImage( "Example2", frame );

               char c = cvWaitKey(33);

               if( c == 27 ) break;

        }

        cvReleaseCapture( &capture );

        cvDestroyWindow( "Example2" );

        return 0;

}


ליחצו שמור ופיתחו אותו בעזרת התוכנה DEVCPP.
לחצו על קימפול והרצה.
הקוד הזה בעצם יציג לכם חלון עם צילום וידאו מהמצלמת אינטרנט שלכם.
אם זה פועל כשורה הכל תקין ואתם יכולים להתחיל לתכנת ב- OpenCV.
בהצלחה! ואם יש עוד שאלות אתם מוזמנים לשאול.

כאן יש מדריך שתרגמתי לעברית, על שימוש ב- OpenCV:
http://www.mup.co.il/OpenCV/

עוד אתרים מעניינים שיכולים לעזור:
http://nashruddin.com/tag/opencv
http://www.site.uottawa.ca/~laganier/tu ... vision.htm
http://www.shervinemami.co.cc/openCV.html
http://myopencv.wordpress.com

בהצלחה! :roll:
נערך לאחרונה על ידי aviv8 בתאריך ו' אוקטובר 24, 2014 3:16 am, נערך פעם אחת בסך הכל.
סמל אישי של המשתמש
aviv8
חבר פורום
חבר פורום
 
הודעות: 113
הצטרף: ש' ינואר 06, 2007 10:46 am
מיקום: ת"א

הודעהעל ידי Mishka » ו' אוגוסט 24, 2012 12:02 am

תודה אביב, מניסיוני אני בטוח שהמדריך יהיה מאוד שימושי להרבה אנשים.
גם בקישורים יש הרבה פרוייקטים לדוגמא טובים, שניתן ללמוד מהם הרבה

מיכאל
סמל אישי של המשתמש
Mishka
משתמש ותיק
משתמש ותיק
 
הודעות: 349
הצטרף: ש' יולי 14, 2007 11:45 pm
מיקום: בת ים

הודעהעל ידי אמנון » ו' אוגוסט 24, 2012 9:04 am

אביב שלום
כדי לשים קישור לשרשור הזה במחסן הכלים , כך שהשרשור לא יעלם בתהומות הפורום .
אמנון :shock:
אמנון
רובוטריק
רובוטריק
 
הודעות: 2031
הצטרף: ש' יולי 09, 2005 5:41 pm
מיקום: חיפה

קוד להפעלת 2 מצלמות + ניקוי התמונה הראשונה מרעשים

הודעהעל ידי aviv8 » א' אוגוסט 26, 2012 3:18 am

קוד להפעלת 2 מצלמות + ניקוי התמונה הראשונה מרעשים שבניתי

אשמח לקבל חוות דעת והצעות לשיפור הקוד :)

כדי לסנן את הרעש מהתמונה המתקבלת בניתי קוד שלוקח את 4 התמונות האחרונות שהתקבלו, שומר אותם ועושה ממוצע פיקסלים ביניהם לכל פריים, כך שיוצא תמונה נקיה כמעט מרעשים. למה כמעט? כי אם עושים יותר מידי, זה יוצר מצבים של שמירת תנועה ובעיות, בקיצור תנסו.

קוד: בחר הכל




/*********************************************************************/
int main()
  {
// opencv stuff
CvCapture *capture1 = 0;
CvCapture *capture2 = 0;
IplImage* frame1;
IplImage* frame2;

// opencv Groesse-Frames-Window 320x240
int win_x = 320;
int win_y = 240;
   
     capture1 = cvCaptureFromCAM(0);
     capture2 = cvCaptureFromCAM(1);

     // WebCAM 1 frame width,height 320x240 == OK
     cvSetCaptureProperty(capture1, CV_CAP_PROP_FRAME_WIDTH, win_x);
     cvSetCaptureProperty(capture1, CV_CAP_PROP_FRAME_HEIGHT, win_y);

     // WebCAM 2 frame width,height 320x240 == OK
     cvSetCaptureProperty(capture2, CV_CAP_PROP_FRAME_WIDTH, win_x);
     cvSetCaptureProperty(capture2, CV_CAP_PROP_FRAME_HEIGHT, win_y);

     if( !capture1 && !capture2 )
        {
           printf( "Cannot open initialize WebCam 1\n" );
           return 1;
        }

   
     // create a window
     cvNamedWindow("Left", CV_WINDOW_AUTOSIZE);
     cvMoveWindow("Left", 100, 100);
   
     cvNamedWindow("Right", CV_WINDOW_AUTOSIZE);
     cvMoveWindow("Right", 420, 100);

   
    int numImgs=4;


    IplImage* imgFrame1[numImgs];
    for(int ttt=0;ttt<numImgs;ttt++){
    imgFrame1[ttt] = cvCreateImage(cvSize(win_x,win_y), IPL_DEPTH_8U, 3);
    }



    int i=0;

     while(1)
        {
           // get a frame
           frame1 = cvQueryFrame( capture1 );
           frame2 = cvQueryFrame( capture2 );

           // always check
           if( !frame1 ) break;
           if( !frame2 ) break;
           

cvSmooth( frame1, frame1, CV_GAUSSIAN, 9, 9 );


for(int ttt=numImgs-1;ttt>=0;ttt--){
if(ttt==0){
imgFrame1[ttt]=cvCloneImage(frame1);
}else{
imgFrame1[ttt]=cvCloneImage(imgFrame1[ttt-1]);
}
}




      for (int y=0; y<win_y; y++) {
         for (int x=0; x<win_x; x++) {
           
            int theSumRed=0;
            int theSumGreen=0;
            int theSumBlue=0;
            double prev_ptr_sum=0;
                for(int ttt=0;ttt<numImgs;ttt++){
                      uchar* prev_ptr;
                      uchar* ptr;
                      ptr = cvPtr2D(imgFrame1[ttt], y, x, NULL);
                      double ptr_sum = (ptr[0]+ptr[1]+ptr[2])/3;
                      if(ttt==0){
                      theSumRed+=ptr[0];
                      theSumGreen+=ptr[1];
                      theSumBlue+=ptr[2];
                      }else{
                            if(ptr_sum-prev_ptr_sum>5 || prev_ptr_sum-ptr_sum>5){
                            theSumRed+=ptr[0];
                            theSumGreen+=ptr[1];
                            theSumBlue+=ptr[2];
                            }else{
                            theSumRed+=prev_ptr[0];
                            theSumGreen+=prev_ptr[1];
                            theSumBlue+=prev_ptr[2];
                            }
                      }
                      double prev_ptr_sum = (ptr[0]+ptr[1]+ptr[2])/3;
                      prev_ptr = cvPtr2D(imgFrame1[ttt], y, x, NULL);

                }
           
            theSumRed = (float)theSumRed/numImgs;
            theSumGreen = (float)theSumGreen/numImgs;
            theSumBlue = (float)theSumBlue/numImgs;
           
            cvSet2D(frame1,y,x,CV_RGB(theSumBlue,theSumGreen,theSumRed));
           
       
         }
      }


      IplImage* out = cvCreateImage( cvSize(win_x,win_y), frame1->depth, 1 );
      cvCvtColor(frame1, out, CV_BGR2GRAY);
      cvEqualizeHist( out, out );
      cvShowImage("Example4-out", out);
      cvReleaseImage( &out );




           // display current frame
           cvShowImage( "Left", frame1 );
           cvShowImage( "Right", frame2 );
           
           

     
           if(cvWaitKey(10)==27) // ESC
              {
                break;
   
                cvWaitKey(0);

                // free memory
                cvDestroyWindow( "Left" );
                cvReleaseCapture( &capture1 );
                cvDestroyWindow( "Right" );
                cvReleaseCapture( &capture2 );
             }

        }  // end While

     // wait for a key
     cvWaitKey(0);
   
     //Release the image
     cvReleaseCapture(&capture1);
     cvReleaseCapture(&capture2);
   
     return 0;
 
  }
 
 
סמל אישי של המשתמש
aviv8
חבר פורום
חבר פורום
 
הודעות: 113
הצטרף: ש' ינואר 06, 2007 10:46 am
מיקום: ת"א

הודעהעל ידי Mishka » א' אוגוסט 26, 2012 5:30 pm

היי אביב.
כודם כל אל תשכך שאיני מתכנת, ועם הOPENCV התחלתי בעצמי לפני כשבוע, אז תתיחס להערות בהתאם:

1) לא משפר את הקוד, אבל מסדר אותו: במקום שתי השורות:
קוד: בחר הכל
CvCapture *capture1 = 0;
 capture1 = cvCaptureFromCAM(0);

הייתי ממליץ על
קוד: בחר הכל
CvCapture *capture1 = cvCaptureFromCAM(0);

2) את הבדיקה
קוד: בחר הכל
if( !capture1 && !capture2 )
עושים לפני כל פעולה אחרת כמו
קוד: בחר הכל
cvSetCaptureProperty

3) אולי לא הבנתי שהוא (לא הרצתי את הקוד), אבל הפקודה הבאה:
קוד: בחר הכל
cvShowImage("Example4-out", out);
לא מוצגת בשום חלון, כי לא ייצרתה אותו. חוץ מזה אתה מייד משחרר אותו, ונראה לי שרציתה להציג את התמונה למשתמש.
4) אתה לא משחרר בסוף את הכל, למאשל לא שחררתה אף תמונה. אין לי מושג מה החשיבות של זה.
5) למראת ששחררתה את הרוב כבר בלחיצה על ESC, ממליץ בחום לשחרר שוב שנייה לפני ה"return 0;", לך תדע, אם מישהוא ילחץ על ה"X" של החלון...


ולבסוף כמה שאלות:
האם חייבים לעשות ממוצע לכל צבע בפיקסל בניפרד? אין איזו פונקציה שעושה זאת אוטומטית?
והאם אתה בטוח שדווקא ממוצע של הצבעים הוא הפתרון? הרי בדרך זו אתה נדרש לקבל מהמצלמה פי 4 Frame Rate ממה שאתה מציג למשתמש. נשמע בזבוז.

אבל כל הכבוד על הקוד, ושהעלתה אותו לפה.
אגב, אם אתה רוצה שזה יהיה מעין חומר לימוד, כדאי להוסיף הערות מפורטות לגבי כל שורה ושורה

מיכאל
סמל אישי של המשתמש
Mishka
משתמש ותיק
משתמש ותיק
 
הודעות: 349
הצטרף: ש' יולי 14, 2007 11:45 pm
מיקום: בת ים

הודעהעל ידי aviv8 » א' אוגוסט 26, 2012 9:25 pm

היי מיכאל
תודה על ההערות :)
זה יעזור לי מאוד, כי באמת אחרי כמה זמן התוכנית נהיית כבדה ולא הבנתי איפה היתה הבעיה.

אני אישית לא מכיר פונקציה ב opencv שעושה ניקוי רעשים אוטומטית.

מה שכן בניתי אפילו עוד קוד שעובד בצורה קצת שונה ופשוט מעדכן פיקסלים שיש בהם רק שינוי משמעותי, אבל זה יוצר בעיות אחרות של שמירת תנועה, כמו כתמי תנועה כאלה.

המטרה היא בעיקרון לשתף, וללמוד אחד מהשני באופן הדדי על ה- OPENCV ומי יודע, אולי יום אחד נפצח משהו :)
סמל אישי של המשתמש
aviv8
חבר פורום
חבר פורום
 
הודעות: 113
הצטרף: ש' ינואר 06, 2007 10:46 am
מיקום: ת"א

הודעהעל ידי Mishka » א' אוגוסט 26, 2012 11:11 pm

ניקוי רעשים בצורה גסה של השוואה של כמה פריימים פיקסל לפיקסל תמיד יצור בעיות במצב של תנוע.
הפתרון הנקי וההרבה יותר מסובך לדעתי הוא משהוא בסגנון:

הופכים את הפריים שמתקבל מהמצלמה לשחור לבן, אני לא בטוח שזה יעזור, אבל מי יודע.
בודקים את השינוי בין הפריים הראשון והשני, לא בעייה, יש פונקציה. נקרא לזה תוצאה ראשונה.
ללא קשר לתוצאה הראשונה בודקים את השינוי בין הפריים השני לשלישי. נקרא לזה תוצאה שנייה.
אם בתוצאה השנייה יש פיקסלים בודדים מרוחקים מקבוצות, ולא מופיעים בתוצאה הראשונה, זהוא רעש!
ממשיכים ובודקים את השינוי בין הפריים השלישי והרביעי, ואת התוצאה הזאת משווים עם התוצאה השנייה, והסיפור חוזר על עצמו.

השינוי בין שני פריימים נראה כך:
תמונה
הפיקסלים הבודדים יכולים להיות אחד מהשניים:
1) רעש מהמצלמה.
2) תנועות מזעריות. הדבר לא כל כך סביר, משום שגם תנועה מזערית כנראה תמשך לאורך כמה פריימים.
חשוב! משווים את הפריימים מהמצלמה, ולא את המוצג למשתמש!

אמנם הפתרון הזה לא יזהה שגיעה בפריים הראשון, ואת השני יכולה לבלגן טיפה, אך מהפריים השלישי והלהה התוצאה אמורה להיות ממש טובה.
בנוסף, הדבר יפתור רק רעשים חלשים, פיקסלים בודדים, על מנת למנוע רעשים קבועים וחזקים כמו קווים שצפים על המסך, נדרש אלגוריתם מאוד מסובך שחברות משלמות המון כסף בישבילו.
פה אתה לא מפסיד Frame Rate, אתה רק נמצא בדיליי של 3 פריימים, במצלמות האיטיות מדובר בכ20 מילישניות דיליי.

אכשיו, כשאני קורא את מה שכתבתי, ספק אם מישהוא יבין, אבל שווה לנסות.

מיכאל
סמל אישי של המשתמש
Mishka
משתמש ותיק
משתמש ותיק
 
הודעות: 349
הצטרף: ש' יולי 14, 2007 11:45 pm
מיקום: בת ים

הודעהעל ידי ororor » ב' ספטמבר 10, 2012 10:51 pm

בגלל שהרמתה את הקפפה ותרמתה אני העלתי את הלינק לעוד אתרים
במטרה שישאר בארכיון
אם תוכל "להעשיר" אותנו בעוד דוגמאות ושימושים ב OPENCV אני ישמח....
http://depositfiles.com/files/z34ix6zmr
http://dl.free.fr/getfile.pl?file=/Q3hGCVuX
http://www.rapidshare.com/files/569028710/OpenCV2.1.zip
http://www.multiupload.nl/X6GN1JP7N1
http://multi-up.com/758940

תודה
אור
ororor
משתמש חדש
משתמש חדש
 
הודעות: 11
הצטרף: ב' ספטמבר 10, 2012 10:37 pm

Re: מדריך להתקנת OpenCV

הודעהעל ידי xalmek » ש' נובמבר 18, 2023 8:40 am

xalmek
רובוטריק
רובוטריק
 
הודעות: 70048
הצטרף: ה' נובמבר 16, 2023 10:48 am

Re: מדריך להתקנת OpenCV

הודעהעל ידי xalmek » א' דצמבר 03, 2023 7:43 am

инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинйоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоtuchkasинфоинфо
xalmek
רובוטריק
רובוטריק
 
הודעות: 70048
הצטרף: ה' נובמבר 16, 2023 10:48 am

Re: מדריך להתקנת OpenCV

הודעהעל ידי xalmek » ש' פברואר 03, 2024 12:19 pm

audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxsemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting
xalmek
רובוטריק
רובוטריק
 
הודעות: 70048
הצטרף: ה' נובמבר 16, 2023 10:48 am

Top Rated Product Site

הודעהעל ידי FrankJScott » ו' פברואר 09, 2024 4:53 pm

Please try Google before asking about Great Product Website 01d1c08
FrankJScott
רובוטריק
רובוטריק
 
הודעות: 1035
הצטרף: ה' אוקטובר 05, 2023 6:33 pm
מיקום: Czech Gold Coin

Re: מדריך להתקנת OpenCV

הודעהעל ידי xalmek » א' מרץ 03, 2024 6:06 am

audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxsemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting
xalmek
רובוטריק
רובוטריק
 
הודעות: 70048
הצטרף: ה' נובמבר 16, 2023 10:48 am


חזור אל פורום הרובוטיקה

מי מחובר

משתמשים הגולשים בפורום זה: Bing [Bot], xalmek ו 7 אורחים

cron