Meysam's Experiences

MeyEx ,محلی برای انتشار تجربیات من در زمینه های مرتبط با حوزه ی تولید نرم افزار

Meysam's Experiences

MeyEx ,محلی برای انتشار تجربیات من در زمینه های مرتبط با حوزه ی تولید نرم افزار

Meysam's Experiences

در زمینه ی تولید نرم افزار فعالیت دارم. نوشته های این بلاگ به طور خاص در مورد تمامی زمینه هایی که منتهی به تولید نرم افزار و یا تجربیاتی که در محیط کاریم کسب می کنم خواهند بود. [البته فعلا به دلیل مشغله های جانبی دیگر و داشتن مخاطب در آن حوزه ها, مطالب کمی غیر نرم افزار شده است!]
در این بلاگ سعی شده که مطالب به صورت تخصصی و دسته بندی شده منتشر شوند

تابلوی اعلانات
جدیدترین نظرات

یکی از دوستان خوبمان لطف کردند و یافته ی خود را در خصوص حل تمرینی که باید از الگوریتم Connected Component Labeling   برای آن استفاده کرد

کامنت گذاشتند و خواستند که دیگر دوستان از آن مطلع باشند.

به نوبه ی خودم از ایشان متشکرم

 

همچنین مراجعه به این لینک نیز می تواند مفید باشد

مقالاتی در مورد پردازش تصویر

 

++++++++++++++

برچسب زنی اجزای متصل

یکی از مهمترین مراحل در بخش بندی تصویر جداسازی اشیاء مختلف برروی تصویر به صورت تصاویر مجزا از هریک است. به عنوان مثال تصویر زیر شامل 16 شی مجزا است که هریک از این اشیا را یک جز متصل می گوییم.


روش های مختلفی برای این منظور وجود دارد، در این مقاله ما به بررسی سه روش زیر خواهیم پرداخت :

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

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

توجه:

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


برچسب زنی اجزای متصل به روش تکراری

برچسب زنی به روش تکراری یک روش دو مرحله ای است که در مرحله اول با پیمایش تصویر از بالا به پایین و از چپ به راست به هر پیکسل شی ای، بر اساس شرایط زیر برچسبی را انتساب می دهیم:

1.
در همسایگی 4 گانه پیکسل p(i,j) ، اگر پیکسل بالایی p(i-1,j) و پیکسل سمت چپی p(i,j-1) دارای برچسب X باشند، پیکسل p(i,j) نیز برچسب X خواهد داشت

2. در همسایگی 4 گانه پیکسل p(i,j) ، اگر پیکسل بالایی p(i-1,j) یا پیکسل سمت چپی p(i,j-1) دارای برچسب X باشند، پیکسل p(i,j) نیز برچسب X خواهد داشت

3. در همسایگی 4 گانه پیکسل p(i,j) ، اگر پیکسل بالایی p(i-1,j) برچسب X و پیکسل سمت چپی p(i,j-1) دارای برچسب Y باشند ( X و Y باهم برابر نیستند)، برچسب پیکسل p(i,j) را برابر X قرار داده و در جدول معادل ها X و Y را وارد می کنیم

4. در همسایگی 4 گانه پیکسل p(i,j) ، اگر پیکسل بالایی p(i-1,j) و پیکسل سمت چپی p(i,j-1) هیچیک دارای برچسب نباشند ، به پیکسل p(i,j) برچسب جدیدی برابر Z قرار می دهیم.


هنگام انتساب برچسب به پیکسل ها معمولا از مقادیر عددی استفاده می کنیم. جدول معادل ها نیز شامل همه برچسب های معادل هم خواهد بود. در مرحله دوم برچسب های معادل با هم ادغام شده و برچسب منحصربفردی را برای هریک از اشیا تولید می کند. اگر X و Y دو برچسب معادل از جدول معادل ها باشند، زمانی که X<Y باشد همه برچسب های Y را برابر X قرار می دهیم و در نتیجه به هریک از اجزای متصل برچسب منحصربفردی منتسب می شود.


برچسب زنی اجزای متصل به روش بازگشتی

در برچسب زنی به روش بازگشتی همگام با پیمایش تصویر از بالا به پایین و از چپ به راست ، با رسیدن به یک پیکسل شی ای، با استفاده از یک الگوریتم بازگشتی هریک از همسایه های 8-گانه این پیکسل که نشان دهنده یک پیکسل شی ای باشند را تا رسیدن به یک پیکسل زمینه به طور جداگانه پیمایش می کنیم.

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


و....

+++++++++++

  • میثم هوشمند

Image Proccessing

پردازش تصویر

نظرات (۲)

سلام
من فایل صوتی رو گوش دادم استاد گفتن تصویر رو باینری کنید و region , boundary, h رو پیدا کنید و رنگش را تغییر دهید من هم با استفاده از bwlabel , bwboundaries و دستورات عمومی (if , forو..) انجام دادم حالا اینجا را خواندم و گیج شدم یعنی باید توابع region , boundary را خودمون پیاده سازی کنیم ؟؟ و در ضمن منظور از h چیست ؟ من اون جلسه سر کلاس نبودم
پاسخ:
سلام
در بین پست های بخش پردازش تصویر؛ پست "دریافت کتاب جزوات و .. آموزشی پردازش تصویر" را نگاه کنید؛ دیشب یک فایل از دسته نوشته ی یکی از هم کلاسی ها منتشر کردم؛ کمک خوبی هست.

H ?? کدام فایل و دقیقا کدام بخش از فایل؟ (زمانش را بفرمایید تا بررسی کنم)

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

برای اینکه مباحث باعث گمراهی نشود؛ لطفا فایل صدای جلسه ی آخر را نیز بررسی بفرمایید؛ استاد توضیح دادند

ممنونم از مشارکت شما؛ و اینکه نتایج بررسی هایی که انجام میدهید را اینجا منتشر میکنید :)

یک پست جدید هم در بخش پردازش تصویر داریم از سایت کدپراجکت
ادامش ؟ عمقی رو توضیح نمیدید !؟
پاسخ:
برای الگوریتم عمقی مطلبی یافت نشد.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی