လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ကို ​​အသုံးပြု. PHP ကို ​​အသုံးပြု. စွမ်းဆောင်ရည်မြင့် optical စီးဆင်းမှုခြေရာခံခြင်းကိုအကောင်အထည်ဖော်ရန်သင်ခန်းစာ

PHP ကို ​​အသုံးပြု. PHP ကို ​​အသုံးပြု. စွမ်းဆောင်ရည်မြင့် optical စီးဆင်းမှုခြေရာခံခြင်းကိုအကောင်အထည်ဖော်ရန်သင်ခန်းစာ

M66 2025-10-25

နိဒါန်း

Optical စီးဆင်းမှုခြေရာခံခြင်းသည်ကွန်ပျူတာရူပါရုံတွင်အဓိကနည်းပညာတစ်ခုဖြစ်သည်။ ရွေ့လျားနေသောအရာဝတ်ထုများ၏အနေအထားနှင့်မြန်နှုန်းကိုခြေရာခံရန်အသုံးပြုနိုင်သည်။ ၎င်းကိုဗီဒီယိုစောင့်ကြည့်ခြင်း, အသိဉာဏ်စိစစ်မှုနှင့်အခြားအခြေအနေများတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ ဤဆောင်းပါးသည် optical tracking function ကိုအကောင်အထည်ဖော်ရန် Opencv စာကြည့်တိုက်နှင့်ပေါင်းစပ်ထားသော PHP ဘာသာစကားကိုမည်သို့အသုံးပြုရမည်ကိုသရုပ်ပြပါမည်။

OpenCV စာကြည့်တိုက်ကို install လုပ်ပြီး configure လုပ်ပါ

ပထမဆုံး OpenCV စာကြည့်တိုက်ကို install လုပ်ရန်နှင့် PHP ၏ oppencv extension ကိုစနစ်တကျအလုပ်လုပ်ရန်သေချာစေပါ။ installation နှင့် configuration များအတွက် opencv နှင့် php extensions ၏တရားဝင်စာရွက်စာတမ်းများကိုဖတ်ရှုပါ။

ဗွီဒီယိုလေ့လာမှုရယူပါ

optical စီးဆင်းမှုခြေရာခံခြင်းမပြုမီ, ဗွီဒီယိုလေ့လာမှုကို input အဖြစ်ရယူရန်လိုအပ်သည်။ Video files များကို opencv ၏ Cvcreatfilezecapure function ကို အသုံးပြု. ဖွင့်နိုင်သည်။

 $ videofilepathath = 'Path_tyo_Video_file';
$ Videocapture = CvcreatefileLeecapure ($ videfilepathate);

optical စီးဆင်းမှုခြေရာခံခြင်း algorithm ကိုခေါ်ပါ

opencv မှပေးသော CVCalcoptlalFowlk function ကို အသုံးပြု. optical စီးဆင်းမှုကိုတွက်ချက်ရန်လက်ရှိဘောင်နှင့်ယခင်ဘောင်၏ပုံရိပ်များကိုပေးရန်လိုအပ်သည်။ ဥပမာအားဖြင့်:

 // ပထမ ဦး ဆုံး frame1 = cvqueryframe ($ videocapthate) ကိုဖတ်ပါ။

နေစဉ် ($ frame1! == null) {
    // ဒုတိယ frame2 = cvqueerfame ($ videocapthate) ကိုဖတ်ပါ။

    လျှင် ($ frame2 === null) {
        ချိုး;
    }

    // Grayscale ပုံရိပ် $ grey1 = cvceateeimage (CVCEESize ($ frame1), IPL_DEPTEX_8U, 1);
    $ Grey2 = CVCEAteimage (CVCEAteimage (CVCEESize (Frame2), IPL_DEPTHT_8U, 1);
    CVCVTCOLOR ($ frame1, $ grey1, cv_bgr2gray);
    CVCVTCOLOR ($ frame2, $ gray2, cv_bgr2gray);

    // optical စီးဆင်းမှု $ flowwidth = cvoldsize ($ grey1) -> အကျယ်,
    $ flowheight = cvindsize ($ Grey1) -> အမြင့်;
    $ flowx = cvceateeimage (CVSizeimage ($ flowwidth, flowheight, $ flowheight), iPl_depthth_32f, 1);
    $ flowy = cvceateeimage (CVSize ($ flowwidth, $ flowheight), IPL_DEPTHTH_32f, 1);

    // optical စီးဆင်းမှုကိုတွက်ချက်ခြင်း CVCalCopticalflowlk ($ Grey1, $ grays2, cvsize (10, 10), $ flowx, $ flowx, $ flowx;

    // optical စီးဆင်းမှုရလဒ်များကိုထပ်မံလေ့လာသုံးသပ်ခြင်းနှင့်ဤနေရာတွင်ယခင် frame1 = $ frame2 ကို update လုပ်ပါ။
}

// ဖြန့်ချိအရင်းအမြစ်များ CVREleasecapure ($ videocapture);

အထက်ပါကုဒ်များတွင်အရောင် frame ကို cvcvtcolor function မှတစ်ဆင့် optical စီးဆင်းမှုအတွက်အပြောင်းအလဲများအတွက်ထုတ်လုပ်ရန်အတွက် cvcvtcolor function မှတဆင့် grayscale image သို့ပြောင်းလဲသွားသည်။ optical စီးဆင်းမှုရလဒ်များကို $ flowx နှင့် $ flowy များတွင်သိမ်းဆည်းထားပြီးနောက်ဆက်တွဲခွဲခြမ်းစိတ်ဖြာမှုအတွက်အသုံးပြုနိုင်သည်။

နောက်ထပ်အပြောင်းအလဲနဲ့နှင့်ခွဲခြမ်းစိတ်ဖြာ

optical စီးဆင်းမှုတွက်ချက်မှုပြီးဆုံးသွားသောအခါရလဒ်များကိုရွေ့လျားနေသောအရာဝတ်ထုများ၏အနေအထားနှင့်အမြန်နှုန်းကိုဆုံးဖြတ်ခြင်းကဲ့သို့သောရလဒ်များကိုခွဲခြမ်းစိတ်ဖြာနိုင်သည်။ အောက်ပါကုဒ်သည် optical စီးဆင်းမှုကိုမည်သို့တွက်ချက်ရမည်ကိုပြသသည်။

 // optical စီးဆင်းမှုအရွယ်အစား $ flowmagneime = cvceateeimage (CVSize ($ flowheight, $ flowheight), IPL_DEPTHTH_32f, iPL_DEPTHTH_32F, 1);
CVCArTtolololtolar ($ flowx, $ flowy, cvcreateeMagneimage (CVSizeMefeMageMagnage), Ipl_depththeighteighte ($ flowheight), 1), 1),

CVCArsttololar function မှတဆင့်ဆိုလျှင် optical စီးဆင်းမှု၏ X နှင့် Y တို့၏အစိတ်အပိုင်းများကို Polar Coordinates များသို့ပြောင်းလဲခြင်းနှင့် pixel တစ်ခုစီ၏ optical စီးဆင်းမှုပမာဏကိုတွက်ချက်သည်။ ထို့ကြောင့် pixel တစ်ခုစီ၏ optical စီးဆင်းမှုပမာဏကိုတွက်ချက်သည်။

အကျဉ်းချုပ်

ဤဆောင်းပါးသည် PHP ဘာသာစကားနှင့် opencv စာကြည့်တိုက်ကိုမည်သို့အသုံးပြုရမည်ကိုသတိပြုမိစေရန်ပတ်ဝန်းကျင်ပြင်ဆင်မှု, ဤအဆင့်များကိုကျွမ်းကျင်ပြီးသည့်နောက်တွင် optical စီးဆင်းမှုနည်းပညာသည်ရုပ်ပုံပြုပြင်ခြင်း၏ထောက်လှမ်းရေးကိုတိုးတက်စေရန်ဗွီဒီယိုစောင့်ကြပ်ကြည့်ရှုခြင်းနှင့်အရာဝတ်ထုခြေရာခံခြင်းကဲ့သို့သော applications တွင်ပြောင်းလွယ်ပြင်လွယ်ရှိနိုင်သည်။

မကြာသေးမီ ဆောင်းပါးများ