اطلاعیه

Collapse
No announcement yet.

انبساط پس از گرفتن مشتق سبل

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

    انبساط پس از گرفتن مشتق سبل

    با سلام

    دوستان همین طور که در عکس زیر مشاهده می کنید بعد از گرفتن مشتق سبل از تصویر اصلی احتیاج به گسترش و منبسط کردن خطوط دارم
    لطفا راهنمایی بفرمایید چطوری می تونم محیط داخل خطوط قرمز رو منبسط کنم یا خطوط رو ادامه بدم و یه محیط بسته دروست کنم مرسی


    #2
    پاسخ : انبساط پس از گرفتن مشتق سبل

    سلام .................

    نمیدونم منظورتون رو درست متوجه شدم یا نه؛ میخواید Convex Hull بسازید؟ راستش یه جای سوالتون گفتید که میخواید یه ناحیه از خطوط مشتق رو Expand کنید .. خــب همونطوری که قبلا هم باهم صحبت کردیم (توی تاپیک Morphology..) میشه از اونا استفاده کرد .. یعنی به طور خیلی معمول؛ یه کرنل 3*3 به صورت + یا * (Diagonal..) تعریف کنید و باهاشون روی تصویر Dilation بزنید .. این کار باعث میشه خطوط شما Bold بشن .. حالا هرچی Kernel تون متفاوت تر تعریف بشه این اتفاق متنوع تر میوفته (یا بدتر میشه یا بهتر .. ضریب خوب و بد شدنش هم دست خودتونه .. اونجا گفتیم همه ی اینارو ..) .. حال یه جای دیگه ی سوالتون گفتید که میخواید به محیط بسته برسید .. اینو باید یه ذره بازش کنید .. میدونید چرا؟ چون یکی دیگه از کاربردهای فراوان Morphology که من فرصت نکردم توی اون تاپیک بگم؛ Convex Hull .. اینجا چه اتفاقی میوفته؟ در واقع تشکیل شده از یه سری Iteration که روی پایه ی Hit Or Miss Transformation تعرفمیشه .. یه کرنل میگیرن افقی یا عمودی و بعد به صورت Iterative میچرخوننش روی تصویر و یه ناحیه ی Convex میسازن .. برای همینه میگم باید یه کم بیشتر توضیح بدید .. موفق باشید ..
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #3
      پاسخ : انبساط پس از گرفتن مشتق سبل

      با سلام برایه مرحله اول که شما توضیح دادید بنده به این شکل عمل کردم جواب هم داد

      E=edge(G,'sobel'
      D=imdilate(E,strel('diamond',1));

      اما لطفا برایه Convex Hull نمونه کد برنامه به بزارید که بنده هم بهتر متوجه بشم

      مرسی

      دیدگاه


        #4
        پاسخ : انبساط پس از گرفتن مشتق سبل

        سلام ...................

        خب کاری که کد بالا میکنه؛ یه Expansion برای خطوط مشتقتون هست .. تا اینجا روال درسته .. امــا یه مساله ای: برای Convex Hull بهتره از Morphology استفاده نکنید .. میدونید چرا اینو میگم؟ من اول فکر کردم میخواید خیلی رندوم با Morphology برید سراغ Convex Hull ولی اگه میخواید خیلی رسمی و دقیق کارتون روانجام بدید؛ باید یه کم باهم صحبت کنیم . اصالت Convex Hull مربوط میشه به چی؟ مربوط میشه به CG و این یعنی محاسبات خاص .. فضایی که شما در اختیار دارید از دید CG دارای Outliers بسیار زیادیه .. CG میگه وقتی شما یه سری دیتا داری؛ با Variance نسبتا کوچیک؛ برای اینکه بتونی به یه ناحیه ی Convex فکر کنی باید میزان Outliers هاتو بیاری پایین و این یعنی یه نوع Prunnig برای Point هایی که الان شدن فضای نمونه ی دیتاهای شما .. پس نکته ی خیلی مهم اینه که علاوه بر Expansion خطوط مشتقی که شما مورد نظرتون هست (همون کادر باند شده ی قرمز) باید بتونید به Prune شدن دیتاهای خارج از اون بند فکر کنید و این یعنی کاهش Outliers .. اصولا CG برای Convex Hull از Delaunay Triangulation استفاده مکنه و بر همین اساس روی اون دیتاهایی که گفتیم باید Prune بشن خیلی حساسه؛ چرا؟ چون اگه اونا بر حسب density ای دارن؛ بخوان توی فضای دیتامون بمونن؛ باید جزو مجموعه ی Convex Hull به حساب بیان و این یعنی خطا ..

        پس اولین کاری که باید انجام بشه اینه که تکلیف اون نقاط خارج از Bound مشخص بشه .. یه کاری میشه کرد و اون اینه که بیایم و یه سری شرط بذاریم که اونارو حذف کنیم .. یعنی یه محدوده تعیین کنیم و از اون به بعد همه رو با Erosion بکشیم .. این کار Outliers شما رو کم میکنه .. حالا که فضاتون تقریبا یه دست شده میتونید به Convex Hull فکر کنید .. برای Convex Hull هم دو تا راه دارید .. یا اینکه با یه دقت خیلی کم از Morphology استفاده کنید و ناحیه ی Convex تون رو دور دیتهای باند شده به دست بیارید و یه راه دیگه اینه که از متد های CG استفاده کنید .. برای راه اولی که پیشنهاد دادم؛ میتونید به Thickening فکر کنید .. چرا؟ چون Convex Hull ساختار رفتتاریش روی عملیات Iterative تبدیل Hit or Miss میچرخه و اون هم که یه چیزی مثل Erosion هست با این تفاوت که هم اطلاعات Background رو در نظر میگیره و هم Foreground رو و این یعنیloss data اش کمتره .. برای ره دوم هم میتونید برید به معروفترین کتابخانه و تابعی که CG کارها برای Convex Hull نوشتن .. اسم معروفی هم داره .. Qhull .. یه تابع هم توی خود متلب هست که براتون Convex Hull میسازه .. آرگومان ورودیش به صورت عمومی یه ماتریسی هست که ابعادش m*n میشه .. m تعداد نقاطمون هست و n هم ابعاد نقاط .. مثلا اگه میخواید یه تصویر رو بدید به آرگومان ورودیش؛ باید اول با Reshape آمادش کنید (مخصوصا اگه RGB باشه .. اینا توی Help متلب اومده .. میتونید دقیقا بخنیدشون ..) .. حالا یه سوال: خود متلب از چه فانکشنی برای Convex Hull استفاده میکنه؟ از همون Qhull .. پس میتونید اونو بخونید تا متوجه ماجرا بشید (یا از اون برای Run کردن استفاده کنید..) .. در پایان لینکهای Thickening و Qhull براتون میذارم تا بتونید ازشون استفاده کنید .. موفق باشید ..

        http://homepages.inf.ed.ac.uk/rbf/HIPR2/thick.htm#2

        http://www.qhull.org/download/
        دوستان! مدتی کمتر به سایت میام ..

        دیدگاه


          #5
          پاسخ : انبساط پس از گرفتن مشتق سبل

          مرسی حسامالدین جان خیلی ممنون یه چیزایی دستم امد

          اما ای کاش همه اینهارو با مثال میزاشتی اینطوری بهتر متوجه می شدم

          ممنون میشم اگه برنامه ای چیزی بزاری مرسی باز هم

          دیدگاه


            #6
            پاسخ : انبساط پس از گرفتن مشتق سبل

            سلام .....................

            شرمنده اصلا این پست نمیدون چرا یادم رفته بود .. مساله رو یه بار دیگه از بالا ببینیم با هم؟ یه تصویر دارید که ازش Edge میگیرید؛ بعد یه Edge map باینری بهتون میده که تشکیل شده از 0 و 1 .. حالا میخواید چیکار کنید؟ یه تیکه از تصویر Edge گرفته شده رو بر حسب density پیکسل ها Crop کنید .. خب ایده ی کلی این کار میشه همون Convex Hull امــا میتونید خیلی ساده تر به مساله جور دیگه هم نگاه کنید و اون اینه که اگه ما نقاطای که در ناحیه ی Dense قرار گرفتن رو با یه بیان ریاضی از اونای دیگه متمایز کنیم شاید بتونید به راحتی اونها رو از هم جدا کنیم دیگه؛ غیر از اینه؟ حالا اون بیان ریاضی میتونه چی باشه؟ میتونه یه variance معمولی باشه یعنی اینکه بگیم اون دسته نقاطی که واریانسشون از Threshold مثلا X بیشتره، حذف کن یا بر عکس؛؛ اون دسته نقاطی که واریانسشون از Threshold مثلا Y کمتره رو نگه دار .. و بی دور ماگزیمم هاشون یه Polygon بکش .. این کار به شما کمک میکنه که با یه دقت نسبتا خوب بتونید نقاط رو از هم تفکیک یا دسته بندی کنید .. موفق باشید ..
            دوستان! مدتی کمتر به سایت میام ..

            دیدگاه

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