اطلاعیه

Collapse
No announcement yet.

محاسبه طول خط در مطلب

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

    محاسبه طول خط در مطلب

    سلام .
    من رو موضوع شکل شناسی و انالیز شکل کار می کنم . الان در مرحله شبیه سازی هستم که می خوام به کمک نرم افزار مطلب این کارو انجام بدهم .
    برای شناسایی خط از تبدیل هاف استفاده می کنم . اما برای اینکه تشخیص بدهم که مثلا این شکل مربع است باید از خصوصیات ذاتی مربع استفاده کنم مثلا از خصوصیاتی چون ، داشتن 4 ضلع با اندازه برابر و 4 زاویه 90 درجه . الان من می تونم 4 خط رو با تبدیل هاف اشکار کنم اما محاسبه طول این خط ها و همین طور محاسبه زاویه رو بلد نیستم لطفا من رو راهنمایی کنید .

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

    #2
    پاسخ : محاسبه طول خط در مطلب

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

    ایده ی Hough transformation تون درسته .. برای ادامه ی کار؛ یه راه دیگه هم دارید .. گرفتن اندازه ی طول اضلاع زیاد دقیق نیست .. میدونم دقیقا چی میخواید .. برای اون کار؛ اگه تصاویرتون یک مقدار نویزی بشن؛ اندازتون تغییر و بعدشم دقت تشخیصتون صفر میشه چون مقیاس تشخیص پیکسل شده و نه محدوده ی اطرافش .. حالا ایده ی من: بیاد این کارو بکنید .. روی اسکلت آبجکت ها کار کنید .. برای تشخیص زاویه هم از Harris Corner Detection استفاده کنید .. متد خیلی پیچیده ای هم نداره .. میاد گوشه های تصویر رو بهتون میده .. برای اسکلت هم میتونیم بیشتر باهم صحبت کنیم .. البته توی لینک زیر یه کم در موردش بحث شده .. میتونید از اوجا بخونیدش .. موفق باشید ..

    http://www.eca.ir/forum2/index.php?topic=26860.0
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #3
      پاسخ : محاسبه طول خط در مطلب

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

      بازم متشکرم

      دیدگاه


        #4
        پاسخ : محاسبه طول خط در مطلب

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

        در مورد Harris براتون یه کد در انتهای این پست ضمیمه کردم که Implementation اون توی MATLAB هست .. تستش کنید .. یه کد دیگه هم براتون ضمیه کردم که اونم میاد گوشه های تصویر رو (با آبجکت های داحلش) میگیره .. اونم تست کنید .. امــا در مورد اسکلت .. ببینید کلا قضیه چیه؟ کلا قضیه اینه که بتونیم فرم آبجکت رو تشخیص بدیم .. یه کم اگه بخوایم دقیق تر با هم صحبت کنیم باید بگیم الان داریم روی Shape صحبت میکنیم .. توی Shape اون چیزی که خیلی مهمه اینه که بتونیم یه بیان خوب از اسکت داشته باشیم .. حالا برای این کار راه های متنوعی وجود داره .. یکیش Distance Transform هست .. یکی دیگش استفاده از Morphology هست و راه سوم که از همه بهتره و معروفتر؛ استفاده از Shock Graphs هست .. حالا کلا هدف چیه؟ بتونیم برای آبجکت یه اسکلت بسازیم که بشه بعدا روش تصمیم گرفت .. مثلا تصاویر زیر رو ببینید ..



        تصویر بالا تصویریه که میخوایم اسکلتش رو به دست بیاریم .. خب از کدوم راه استفاده کنیم؟ فرق نمیکنه .. چون مدلمون باینریه .. از دومی استفاده میکنیم .. هدف چیه؟ بتونیم آبجکتمون رو از زاویه ی اسکلتش ببینیم یا اینکه یه Representation خوب از اسکلتش داشته باشیم .. برای این کار باید تصویرمون رو Fill کنیم .. یعنی اینکه نواحی داحلش رو با Boundary اش از نظر مقدار یکی کنیم .. نتیجه ی اون میشه تصویر زیر ..



        حالا که اینکار رو انجام دادیم میتونیم به به دست آوردن اسکلت فکر کنیم .. متد به دست آوردن اسکلت توی Morphology اینطوریه که یه سری Iteration انجام میدیم و اول بار یه دایره ی اصلی روو محیط میکنیم درون آبجکت و حرکتش میدیم .. مسیر مراکز اون دایره میشه اسکلت اولیه .. این اتفاق تا کجا ادامه داره .. تا جایی که دایره دیگه نتونه حرکت کنه .. بعد از این مرحله شعاع دایره نصف میشهیا بع عبارتی دایره میوفته بین خطوط اسکلت و Boundary هر جهت .. دوباره این عمل (عمل iterative ) ادامه پیدا میکنه تا به جایی برسیم که دیگه نشه برای حرکت دایره مسیر در نظر گرفت (اون رو بین دو قسمت قرار داد (محیط کرد)..) .. نتیجه ی این کار میشه شکل زیر ..



        حالا اینجا تازه کار ما شروع میشه .. یعنی باید تصمیم بگیریم که چطور از این اسکلت استفاده کنیم .. من با یکی از دوستام که صحبت میکردم میگفت هنوز این قضیه کامل کامل حل نشده (البته با Shock Graph یه کارایی کردن که واقعا خوبه) و میشه روش ایده های زیادی داد .. مثلا میشه از این درخت استفاده کردو با تئوری گراف یه کارایی روش انجام داد .. به هر حال جای ایده دادن بازه و میشه خیلی روش مانور داد .. راستی یه نکته ی دیگه .. من پست اولتون رو دوباره خوندم .. معمولا اینطوری میشه .. از پست اول یه کم دور میشیم .. امــا اگه صرفا میخواید مربع یا مستطیل Detect کنید میتونید از لینک زیر استفاده کنید .. اوجا توضیحات مشابهی هست که بتونه کمکتون کنه .. موفق باشید ..

        http://www.eca.ir/forum2/index.php?t...3339#msg113339
        فایل های پیوست شده
        دوستان! مدتی کمتر به سایت میام ..

        دیدگاه


          #5
          پاسخ : محاسبه طول خط در مطلب

          سلام . من لینک ها رو مطالعه کردم . برا اینکه مطلب بهتر باز شه کل صور ت مساله رو توضیح می دم .
          من در این پروژه از تصویر های Gray Scale استفاده می کنم . در این پروژه من باید شکل های منظم هندسی رو اشکار سازی کنم. (مربع - مستطیل - دایره و مثلث) . و طبیعتا پایان برنامه تعداد این اشکال رو از هر نوع مشخص کنم .
          اما من در قسمت برنامه نویسی ، فقط توانایی Edge detection و تبدیل هاف رو دارم . همین . حالا ادامه مسیر ؛ چطوری باشه فرقی نمی کنه . lمن روشهای shape maching هم به ذهنم رسیده اما نمی دونم جواب می ده یا نه . شما لطفا راهنمایی کنید .

          در ضمن مواردی هم که عنوان کرده بودید بعضی رو اطلاع نداشتم مثل distance transform . morphology .

          اطفا کمک کنید

          دیدگاه


            #6
            پاسخ : محاسبه طول خط در مطلب

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

            Distance Transform یه ابزار خیلی کاربردی توی پردازش تصویر؛ Vision و Pattern محسوب میشه و ایده های زیادی رو میتونه پاسخگو باشه .. ایده ی کلی DT اینه که میاد فاصله ی یه پیکسل رو توی یه تصویر باینری؛ نسبت به پیکسل های نا صفرش پیدا میکنه .. بیان دیگه ی اون اینه که فاصله ی پیکسل های داخل یه تصویر رو از Boundary تصویر به دست میاره .. در واقع DT یه تبدیل از فضای باینری به فضای Gray Scale هست به این معنا که بعد دامنه اگه 2 باشه بعد برد تبدیل میشه 256 .. روی همین استدلال خروجی این تبدیل یه Spectrum از Intensity هایی هست که شدت روشناییشون نشون دهنده ی مقدار بیشتر اون فاصله و کمرنگ بودنشون نشون دهنده ی نزدیگی پیکسل ها به مقدار ناصفر یا همون کوتاهی اون فاصله است .. حالا این فاصله به روش های خاصی تعریف میشه .. مثلا میگن Euclidean .. یعنی چی؟ توی روش Euclidean فاصله ی یه پیکسل همون فاصله ی اقلیدسی تعریف میشه .. در روش City Block فاصله اینطور تعریف میشه که روی سطر و ستون حرکت کنیم تا به پیکسل ناصفر برسیم .. حرکت هامون محدوده به دو محور افقی و عمودی .. توی متد Euclidean محدودیت حرکت به سه محور خلاصه میشد .. عمودی؛ افقی و مایل یا همون Diagonal .. متد دیگه ای که وجود داره Chessboard هست که میاد و فاصله رو زمانی تعریف میکنه که بتونه یه مسیر متصل 8 تایی از پیکسل های اطراف اون پیکسل نا صفر ایجاد کنه .. یه متد دیگه هم هست که بهش میگن Quasi-Euclidean .. این چه تعریفی داره؟ فاصله رو تلفیقی از اقلیدسی و City Block تعیین میکنه .. توی شکل زیر این مطالبی رو که گفتم میتونید مصور ببینید .. شکل 1 متد Euclidean ؛؛ شکل دوم متد City Block ؛؛ شکل سوم متد Chessboard ؛؛ و شکل چهارم کتد Quasi-Euclidean هست ..



            Morphology هم یه تیپ نگاه کردن به تصاویر در نگاه باینریه .. البته Morphology برای تصویر Gray Scale هم تعریف میشه ولی بیشتر توانش رو گذاشته روی باینری .. بیشتر تعریفاتش بر منطق مجموعه ها تعریف شده و کارایی میکنه که بر حسب اون تعریف ها معنا پیدا میکنن .. توی لینک زیر یه دوره ی آموزشی برگزار شده که میتونید اون رو ببینید ..

            http://www.eca.ir/forum2/index.php?topic=23734.0

            تشخیص مربع؛ با Hough میتونه انجام بشه .. تشخیص مستطیل هم همینطور .. تشخیص دایره هم همینطور .. امــا برای مثلث ایده ای الان توی ذهنم نیست .. گفتید به Shape Matching فکر کردید .. آخه یه چیزی که هست اینه که Shape matching الگوریتم های پرهزینه ای داره (از نظر محاسبه ) که به نظر جذاب نمیرسه بخوایم از اونا استفاده کنیم .. موفق باشید ..
            دوستان! مدتی کمتر به سایت میام ..

            دیدگاه


              #7
              پاسخ : محاسبه طول خط در مطلب

              سلام . ممنونم از لطف تون

              من با تیدیل هاف فقط می تونم دایره و خط رو تشخیص بدم . نمی دونستم میشه مربع و مستطیل رو هم تشخیص داد. چطوری میشه مربع و مستطیل رو تشخیص داد ؟؟؟؟؟؟
              دستور خاصی در matlab داره ؟؟؟///

              دیدگاه


                #8
                پاسخ : محاسبه طول خط در مطلب

                نوشته اصلی توسط abolnejadian
                سلام . ممنونم از لطف تون

                من با تیدیل هاف فقط می تونم دایره و خط رو تشخیص بدم . نمی دونستم میشه مربع و مستطیل رو هم تشخیص داد. چطوری میشه مربع و مستطیل رو تشخیص داد ؟؟؟؟؟؟
                دستور خاصی در matlab داره ؟؟؟///
                سلام ...................

                دستور خاصی که در متلب وجود نداره ولی میتونید فایل زیر رو ببینید .. استفاده از تبدیل Hough برای پیدا کردن مستطیل و مربع با Rotation هاشون .. موفق باشید ..
                فایل های پیوست شده
                دوستان! مدتی کمتر به سایت میام ..

                دیدگاه


                  #9
                  پاسخ : محاسبه طول خط در مطلب

                  سلام . خسته نباشید
                  امشب بالاخره بعد از چند شب دس دس کردن فرصت شد تا فیل rectangle detection رو بخونم . فوق العاده بود . خیلی ممنونم . اما بعضی موارد بو هم که برا اولین بار بود می شنیدم مثه
                  Rectangular Hough Transform (RHT ؟

                  به هرحال ممنونم .

                  دیدگاه


                    #10
                    پاسخ : محاسبه طول خط در مطلب

                    نوشته اصلی توسط abolnejadian
                    سلام . خسته نباشید
                    امشب بالاخره بعد از چند شب دس دس کردن فرصت شد تا فیل rectangle detection رو بخونم . فوق العاده بود . خیلی ممنونم . اما بعضی موارد بو هم که برا اولین بار بود می شنیدم مثه
                    Rectangular Hough Transform (RHT ؟

                    به هرحال ممنونم .
                    سلام .....................

                    Rectangular Hough Transform یه حالت خیلی خاصی از Hough Transform هست .. در واقع یه روش نگاه کردن به مساله برای حل اونه .. چیز خاصی نیست .. یه Application خیلی خاص بود برای عکس های میکروسکوپیک که توی اونا دو تا ژاپنی؛ که یکیشون تقریبا آدم معروفیه از این متد استفاده کرده بودن .. Zhu منظورمه .. در واقع وقتی که اندازه و Scale مربع ها یا همون Rectangle ها برامون معلوم باشه میتونیم از Hough دو بعدی مثل یه انباره ی عددی استفاده کنیم و این اتفاقیه که مارو کمک میکنه تا بتونیم مرکز و Orientation های یه Rectangle رو به دست بیاره .. از قراری که اونا توی کارشون گفته بودن؛ این روش تقریبا robust هست امــا همونطور که گفتیم محدودیتی که داره اینه که فقط برای مواقعی خوبه که ما ابعاد Rectangle مون رو بدونیم .. یعنی یه جور خاص کردن مساله .. توی اون Paper ای که براتون گذاشتم از این روش استفاده نشده .. در واقع ایده ی اون Paper روی اون Window هست که حرکت میکنه روی Image و Hough رو به صورت Local میزنه روی هر Window .. موفق بشید ..
                    دوستان! مدتی کمتر به سایت میام ..

                    دیدگاه


                      #11
                      نوشتن برنامه مطلب برای اتخراج مربع و مستطیل از تصویر

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

                      دیدگاه


                        #12
                        پاسخ : نوشتن برنامه مطلب برای اتخراج مربع و مستطیل از تصویر

                        نوشته اصلی توسط soheila2009
                        سلام
                        لطفا برای نوشتن برنامه استخراج مربع ومستطیل از تصویر مرا راهنمایی کنید
                        سلام ....................

                        اون مقاله ای که اون بالا ضمیمه کردم میتونه خیلی کمکتون کنه .. یه لینک دیگه هم هست دو سه تا پست بالاتر .. اونم ببینید خوبه .. موفق باشید ..
                        دوستان! مدتی کمتر به سایت میام ..

                        دیدگاه


                          #13
                          پاسخ : محاسبه طول خط در مطلب

                          خسته نباشید
                          اشکار سازی شکال منظم (مربع و مستطیل و دایره) در تصاویر مصنوعی که با نرم افزارpaint موفق امیز بود اما
                          جهت استخراج اشکال منظم (مربع و مستطیل و دایره) در روی تصاویر ماهواره ای به ایم مشکل بر خوردم که توانایی لبه یابی و حذف نویز ندارم . این قدر نویز زیاد است که توانایی استخراج لبه به صورت معمول وجود ندارد . این تصویر از ماهواره ikonos گرفته شده است
                          لطفا من را راهنمایی کنید . به نظر شما نویز ها رو چطوری حذف کنم
                          موفق باشید

                          دیدگاه


                            #14
                            پاسخ : محاسبه طول خط در مطلب

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

                            برای هر تیپ نویز؛ یه روشی میشه استفاده کرد .. باید نمونه بذارید تا روش فکر کنیم .. نمونه بذارید ..
                            دوستان! مدتی کمتر به سایت میام ..

                            دیدگاه


                              #15
                              پاسخ : محاسبه طول خط در مطلب

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

                              دیدگاه

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