اطلاعیه

Collapse
No announcement yet.

الاینمنت و nonrigid transformation

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    الاینمنت و nonrigid transformation

    سلام دوستان. من دنبال برنامه ای هستم که بتونم دو تا منحنی رو روی هم الاین(هم تراز) کنم و تابعی که این کارو میکنه هم به صورت یک ماتریس در خروجی داشته باشم. اگر منحنی ها کاملا روی هم الاین نشدند مشکلی نداره، خطای ناچیز هم مجازه. اگر کسی برنامه آماده شو جایی دیده باشه ممنون میشم کمک کنین

    #2
    پاسخ : الاینمنت و nonrigid transformation

    ببینید درست متوجه شدم:
    اگه مختصات نقاط توابع رو داری
    میتونی از curve fitting یا interpolation استفاده کنی
    :read:
    همچنین لینک زیر:
    Align two data sets
    ...

    1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
    2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
    3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

    دیدگاه


      #3
      پاسخ : الاینمنت و nonrigid transformation

      نه منظورم این نبود. ما دو ماتریس داریم که ابعادشون باهم برابره(مثلا x1 , x2 ). کاری که میخواییم بکنیم اینه که x1 رو دفورمه کنیم تا حتی الامکان به x2 تبدیل بشه. و تابعی که این تبدیل رو انجام میده هم داشته باشیم تا ازش برای ذاده های دیگه استفاده کنیم. لطفا کمک کنید وقت زیادی برام نمونده. بعضی از کدهای آماده هم اصلا نمیشه ازشون چیزی فهمید :angry:

      دیدگاه


        #4
        پاسخ : الاینمنت و nonrigid transformation

        نوشته اصلی توسط arezoomehdi
        نه منظورم این نبود. ما دو ماتریس داریم که ابعادشون باهم برابره(مثلا x1 , x2 ). کاری که میخواییم بکنیم اینه که x1 رو دفورمه کنیم تا حتی الامکان به x2 تبدیل بشه. و تابعی که این تبدیل رو انجام میده هم داشته باشیم تا ازش برای ذاده های دیگه استفاده کنیم. لطفا کمک کنید وقت زیادی برام نمونده. بعضی از کدهای آماده هم اصلا نمیشه ازشون چیزی فهمید :angry:
        کاری که شما میخوای انجام بدی
        شبیه تعدیل هیستوگرام تصویره
        جایی که به کمک یک تابع تبدیل
        هیستوگرام یک تصویر به هیستوگرام یک تصویر دیگه تبدیل میشه
        اگه برای تصویر میخواید کدهاش فراوون موجوده
        ...
        همچنین ایده ی زیر هم ببینید:
        Dynamic Time Warp
        ...
        ابعاد ماتریستون چیه؟
        1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
        2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
        3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

        دیدگاه


          #5
          پاسخ : الاینمنت و nonrigid transformation

          خیلی ممنون برای وقتی که میذارید. :smile: نه پردازش تصویر نیست کارم. دوتا منحنی دارم که 21 تا نقطه ازش دارم. یعنی ابعاد ماتریسهام میتونه 21*n باشه. به طور خلاصه بگم از یه آزمایش دوتا منحنی (همون 21 تا نقطه) به دست آوردیم که هدفمون پیداکردن ماتریسی هست که یکی از منحنی ها رو به اون یکی تبدیل کنه. در مورد DTW چطور میشه ازش برای این کار استفاده کرد؟

          دیدگاه


            #6
            پاسخ : الاینمنت و nonrigid transformation

            ببین این تحلیل درسته:
            یک منحنی داری به نام x با ضابطه f(t) یعنی:
            کد:
            x=f(t)
            و یک منحنی به نام y با ضابطه g یعنی:
            کد:
            y=g(t)
            حالا یک تابع تبدیل مثل T اینا رو به هم تبدیل کرده:
            کد:
            g(t) = f(t) T(t)
            پس ضابطه تابع تبدیل این میشه:
            کد:
            T(t) = g(t)/f(t)
            پس با داشتن 21 نقطه از یکی و 21 نقطه از دیگری
            تابع تبدیل T هم 21 نقطه خواهد داشت.
            ...
            اگر این تحلیل به کارت نمیاد بگو جور دیگه به مساله نگاه کنیم!
            1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
            2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
            3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

            دیدگاه


              #7
              پاسخ : الاینمنت و nonrigid transformation

              خیلی جالبه من ماه هاست روی این فکر میکنم و مساله رو خیلی پیچیده نگاه میکردم. این چیزی که گفتید کاملا درسته ولی ما نمی خواییم T یه تابع خطی باشه.دلیلش هم برمیگرده به این که می خواهیم از این تابع تبدیل (T) بعدا برای تخمین یک منحنی دیگه استفاده کنیم و تو این حالت خطای زیادی داریم.

              دیدگاه


                #8
                پاسخ : الاینمنت و nonrigid transformation

                از شبکه عصبی هم میتونی استفاده کنی، البته برای آموزش درست شبکه عصبی لازمه تعداد داده های آموزشی زیاد باشه.
                لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                دیدگاه


                  #9
                  پاسخ : الاینمنت و nonrigid transformation

                  نوشته اصلی توسط arezoomehdi
                  ما نمی خواییم T یه تابع خطی باشه.دلیلش هم برمیگرده به این که می خواهیم از این تابع تبدیل (T) بعدا برای تخمین یک منحنی دیگه استفاده کنیم و تو این حالت خطای زیادی داریم.
                  با تشکر از پاسخ هادی
                  تابعی که در اینجا نوشتیم اصلا خطی نیست
                  و از تقسیم دو تابع بر هم بدست میاد
                  حالت خطی یعنی این:
                  شما بیای به کمک روشهایی (اگه لازم بود بگو بهت بگم)
                  از روی 21 عدد ورودی و خروجی
                  یک ضریب واحد پیدا کنی
                  و تک تک اون 21 عدد رو در همون یک ضریب، ضرب کنی
                  و خروجی تقریبی بدست بیاد!
                  این خودش یک روش برای [glow=red,2,300]تقریب[/glow] یا [glow=red,2,300]تخمینه [/glow]
                  میتونی از روشهای دقیقتر هم استفاده کنی
                  و مثلا به جای 1 ضریب، چندین ضریب داشته باشی
                  همچنین مبشه یه سری هم به بحثهای [glow=green,2,300]تخمین[/glow] زد!
                  ...
                  1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
                  2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
                  3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

                  دیدگاه


                    #10
                    پاسخ : الاینمنت و nonrigid transformation

                    باز هم ازتون ممنونم برای وقتی که میذارید. روشی که گفتید رو امتحان می کنم فقط اگر امکانش هست کمی بیشتر در مورد هر دو روش(دقیق و غیردقیق) توضیح بدید ممنون میشم.

                    اضافه شده در تاریخ :

                    clear all
                    close all
                    clc
                    %%%dadehayi ke ma darim A1,A2,C1,C2 hast. mikham bebinam agar C2 ro nadashte basham ba in ravesh takhmin deghate takhmine C2 chetore.
                    A1 =[ 1:1:21;12.6793372974466,-4.12967970269349,-8.79922814815332,-9.49863811760250,-9.36347270022142,-8.88155561199675,-8.29156368781232,-7.61309050933115,-6.96856627333839,-6.49804953716464,-6.31851786477654,-6.49804953716464,-6.96856627333840,-7.61309050933120,-8.29156368781231,-8.88155561199675,-9.36347270022141,-9.49863811760255,-8.79922814815331,-4.12967970269350,12.6793372974466];
                    A2 =[ 1:1:21;9.33961230664402,-2.47860648881453,-6.74957424287348,-7.70995443805854,-7.93541724693872,-7.89980119842627,-7.81107877378149,-7.69712585922596,-7.60190202428357,-7.54238794055808,-7.51888668942553,-7.54238794055807,-7.60190202428351,-7.69712585922594,-7.81107877378143,-7.89980119842630,-7.93541724693871,-7.70995443805853,-6.74957424287345,-2.47860648881454,9.33961230664411];


                    %bedast avardane tabe tabdile A1 va A2 (T1):
                    T1=A1\A2;


                    myA2=A1*T1; Aerror=A2-myA2; % Aerror bayad sefr bashe ke kamelan sefr nist. azash badan baraye takhmine C2 estefade mikonam




                    C1 =[ 1:1:21;0,-3.38030664936050,-6.32623792124926,-8.49065835977602,-9.68207858810535,-9.89949493661167,-9.32623792124927,-8.28432738172276,-7.15942415378164,-6.31285730919791,-6,-6.31285730919790,-7.15942415378164,-8.28432738172276,-9.32623792124926,-9.89949493661167,-9.68207858810535,-8.49065835977602,-6.32623792124927,-3.38030664936050,-2.69422295812418e-15];
                    C2 =[ 1:1:21;0,-2.01833515014186,-3.89918693812442,-5.52759333799061,-6.82890903921989,-7.77817459305202,-8.39918693812442,-8.75363077684345,-8.92277991065906,-8.98587688176301,-9.00000000000000,-8.98587688176301,-8.92277991065907,-8.75363077684345,-8.39918693812442,-7.77817459305202,-6.82890903921989,-5.52759333799061,-3.89918693812443,-2.01833515014186,-1.59204083889156e-15];



                    % chon farze ma ine ke C2 ro nadashte bashim, ghablan ostaadam hads zade ke dadehaye azmayeshgahiye ma tori hastan ke C1 ba A1 , va C2 ba A2 ham ye
                    % rabeteyi daran. pas man migam ke mitoonam az T1 baraye takhmine C2 estefade konam:


                    myC2=(C1*T1); %shekle C2i ke takhmin zadim
                    Cerror=myC2-C2



                    figure;plot(A1(2,,'k'hold on
                    plot(A2(2,,'b'hold on
                    plot(C1(2,,'-.k'hold on
                    plot(C2(2,,'-.b','LineWidth',2);hold on %shekle C2 vagheE
                    plot(myC2(2, ,'-.r','LineWidth',2); %shekle C2i ke takhmin zadim




                    این کدی که نوشتم رو لطفا کپی و ران کنید، شاید بهتر بتونم منظورمو برسونم.

                    دیدگاه


                      #11
                      پاسخ : الاینمنت و nonrigid transformation

                      سلام
                      الان متاسفانه متلب نصب ندارم
                      برنامه تونو خوندم
                      با توجه به جدول آخر لینک زیر:
                      Array vs. Matrix Operations
                      شاید برنامه ای که شما نوشتید با اونچیزی که بحث کردیم متفاوت باشه
                      یه بررسی بر روی عملگرهای ماتریسی انجام بدید دوباره
                      شمامیخواید تک تک المانهای A1 و A2 بر هم تقسیم بشن!
                      با توجه به لینک فوق شما احتمالا باید از عملگر .\ استفاده کنی
                      یه بررسی انجام بده
                      و نتایج رو به ما هم بگو :rolleyes:
                      ...
                      یک برنامه ای رو با متمتیکا نوشتم و به ایمیل شما
                      که در مشخصاتون گذاشتید فرستادم
                      فکر کنم به کارتون بیاد
                      1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
                      2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
                      3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

                      دیدگاه


                        #12
                        پاسخ : الاینمنت و nonrigid transformation

                        پلیییییییییز هلپ می... :cry2:

                        دیدگاه


                          #13
                          پاسخ : الاینمنت و nonrigid transformation

                          با توجه به گفته های شما
                          اگه دنبال عدد سازی هستید
                          میتونید از روش زیر استفاده کنید:
                          شما میگید که Ci ها با Ai ها ارتباط دارن
                          از طرفی اگه A1 منتج به A8 بشه
                          باید C1 منتج به C8 بشه
                          و برای اینکه C8 تخمین زده بشه از T1 استفاده میکنید
                          یعنی A1*T1=A8 و شما انتظار دارید که:
                          C1*T1=C8 بشه
                          در حالی که در عمل با خطای زیادی روبرو هستید.
                          با بررسی هایی که بر روی داده های شما انجام دادم
                          با توجه به اینکه C1 و A1 رابطه شون خیلی نزدیک نیست (با بدست آوردن ضریب همبستگی)
                          نباید انتظار داده های دقیق داشته باشین!
                          اما اگر داده های C8 رو داری
                          و دنبال عدد سازی هستی میتونی روش زیر رو پیاده سازی کنی:
                          کد:
                          A1 T1 = A8
                          C1 T2 = A1
                          C1 T2 T1 = A8
                          C8 T3 = A8
                          C1 T2 T1 = C8 T3
                          C8 = (C1 T2 T1)/T3
                          اگه جایی مشکل بود بگو توضیح بدم
                          1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
                          2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
                          3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

                          دیدگاه


                            #14
                            پاسخ : الاینمنت و nonrigid transformation

                            راه دیگه ای جز عددسازی به ذهنتون میرسه؟ اجباری هم به استفاده از T1 برای تخمین C نیست. با هر روشی که بشه، میتونیم با در دست داشتن { Ai و Aj و Cj ، { Ci رو تخمین بزنیم؟

                            دیدگاه


                              #15
                              پاسخ : الاینمنت و nonrigid transformation

                              نوشته اصلی توسط arezoomehdi
                              راه دیگه ای جز عددسازی به ذهنتون میرسه؟ اجباری هم به استفاده از T1 برای تخمین C نیست. با هر روشی که بشه، میتونیم با در دست داشتن { Ai و Aj و Cj ، { Ci رو تخمین بزنیم؟
                              برای تخمین زدن به چه اطلاعاتی نیاز داریم؟
                              آیا میشه همینجوری یک سیگنال رو تخمین زد؟
                              به عنوان نمونه در داده هایی که شما داری
                              A1 اگه به A8 تبدیل شده باشه با تابع تبدیل T1
                              و طبق گذشته اگه انتظار داشته باشیم که C1 با T1 به C8 تبدیل بشه
                              درست نیست!
                              چرا؟
                              چون رابطه C8 , A8 با رابطه C1 , A1 فرق داره!
                              A1 , A8 , C1 دو کوهانه متقارن هستن
                              اما C8 تک کوهانه ست!
                              بنابراین انتظار از رابطه ای که در فوق گفته شد، بیجاست!
                              یعنی این فرض که از A1,A8,C1 به C8 میرسیم یه جورایی نادرسته
                              چون ماهیتا با هم متفاوتن.
                              مگر اینکه بیایم برای تخمین C8 شرط بذاریم:
                              [glow=red,1,200]سیگنال C8 تک کوهانه خواهد بود![/glow]
                              با شرط فوق شاید بشه کارهایی کرد!
                              ...
                              :read:
                              1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
                              2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
                              3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

                              دیدگاه

                              لطفا صبر کنید...
                              X