برق. قدرت. کنترل. الکترونیک. مخابرات. تاسیسات.

دایره المعارف تاسیسات برق (اطلاعات عمومی برق)

فیلترهای آرام کننده حوزه مکانی
برای انجام تبدیلات در هر دو حوزه مکانی از فیلترها استفاده می کنیم .فیلترها در به دو دسته تقسیم می شوند:
     • فیلترهای پایین گذر ( Low Pass Filter ) : که با عبور از پیکسل های با فرکانس کم ، بر روی پیکسل های با فرکانس بالا تغییرات ایجاد می کنند.
     • فیلترهای بالاگذر ( High Pass Filter ) : که با عبور از پیکسل های با فرکانس بالا ، بر روی پیکسل های با فرکانس پایین تغییرات ایجاد می کنند.

 پیکسل فرکانس پایین پیکسلی است که اختلاف شدت روشنایی آن پیکسل با پیکسل های همسایه اش کم باشد ( نقاط آرام تصویر ). در مقابل پیکسل فرکانس بالا پیکسلی است که اختلاف شدت روشنایی آن پیکسل با پیکسل های همسایه اش زیاد باشد ( لبه ها و نویزها ).

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

فیلترهای پایین گذر میانگین:
ساده ترین نوع فیلترهای پایین گذر فیلترهای میانگین می باشند. یک فیلتر میانگین m * n شامل ضرایبی مثبت می باشند که همه این ضرایب بر عکس مجموع کل ضرایب فیلتر ضرب می شوند به عبارت دیگر همه عناصر ماسک مقداری برابر با 1/mn خواهند داشت. به عنوان مثال یک فیلتر میانگین 3 * 3 به صورت زیر مشخص می شود:
AISRG

تصویر آرام شده مذکور با استفاده از همین ماسک صورت گرفته است. برای بلور کردن بیشتر تصویر از ماسک های بزرگتری با سایز m * n باید استفاده کرد که مقادیر همه عناصر ماسک برابر با مقدار 1/mn خواهد بود. بدیهی است هرچه اندازه ماسک بزرگتر باشد ، زمان بیشتری برای پردازش تصویر نیاز خواهد بود. به نظر شما از نظر محاسباتی 2 بار کانولوت کردن ماسک 3*3 زمان بیشتری را مطلبد یا اعمال کردن 1 بار ماسک 5*5 ؟ در زیر فیلتر آرام کننده دیگری که به فیلتر پایین گذر گاوس ( Gaussian ) مشهور است ، نمایش داده شده است :

شبه کد زیر نحوه تولید فیلتر آرام کننده گاوسین را نشان می دهد :
Function Gaussian( maskWidth, maskHeight )
Begin
  filter = double[maskHeight, maskWidth]
  For I = 1 to maskWidth Do
    For J = 1 To maskHeight Do
      filter[J,I] = g(I,J)
    End For
  End For
  Return filter
End

همانند  دیگر فیلترهای حوزه مکانی ، فیلتر گاوسین نیز  با استفاده از عملگر کانولوشن بر روی تصویر اعمال می شود.

فیلتر میانه ( Median )
فیلتر پایین گذر دیگری که نسبت به فیلترهای دیگر به زمان پردازش بیشتری نیاز دارد ، فیلتر میانه است. فیلتر پایین گذر میانه از یک همسایگی m * n استفاده می کند و روش کار آن نیز به این صورت است که کل همسایگی ها را به صورت صعودی مرتب کرده و عنصر وسط اعداد مرتب شده را انتخاب و جایگزین پیکسل مرکزی می کند. لازم به ذکر است که فیلتر پایین گذر میانه برای حذف نویز فلفل نمکی ( Salt & Pepper ) می تواند مورد استفاده قرار گیرد. شکل زیر تصویر نویزداری ( نویز فلفل نمکی ) را نشان می دهد که با استفاده از فبلتر میانه ارتقا یافته است:
 
AISRG AISRG
نتیجه اعمال فیلتر میانه تصویر اصلی
 
  در مقاله بعدی نیز به معرفی برخی از فیلترهای تیزکننده پرکاربرد در پردازش تصویر اشاره  کرده ایم.
 

فیلترهای تیز کننده حوزه مکانی
برای انجام تبدیلات در هر دو حوزه مکانی از فیلترها استفاده می کنیم .فیلترها در به دو دسته تقسیم می شوند:
     • فیلترهای پایین گذر ( Low Pass Filter ) : که با عبور از پیکسل های با فرکانس کم ، بر روی پیکسل های با فرکانس بالا تغییرات ایجاد می کنند.
     • فیلترهای بالاگذر ( High Pass Filter ) : که با عبور از پیکسل های با فرکانس بالا ، بر روی پیکسل های با فرکانس پایین تغییرات ایجاد می کنند.

 پیکسل فرکانس پایین پیکسلی است که اختلاف شدت روشنایی آن پیکسل با پیکسل های همسایه اش کم باشد ( نقاط آرام تصویر ). در مقابل پیکسل فرکانس بالا پیکسلی است که اختلاف شدت روشنایی آن پیکسل با پیکسل های همسایه اش زیاد باشد ( لبه ها و نویزها ).

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

فیلتر تیرکننده :
همانطور که بررسی کردیم ، فیلترهای تیز کننده برای نمایان کردن بیشتر جزئیات تصویر به کار می روند. ساده ترین فیلتر تیزکننده یک ماسک 3*3 است که مقادیر آن به صورت زیر تعیین می گردند:
AISRG

فیلترهای تیز کننده لاپلاسین دو نوع فیلتر تیزکننده دیگر نیز وجود دارد که از آن ها می توان برای تیز کردن تصاویر استفاده کرد. این فیلتر ها که آن ها را فیلترهای لاپلاسین ترکیبی می نامیم به صورت زیر هستند:
AISRG AISRG
فیلتر تیزکننده لاپلاس 1 فیلتر تیزکننده لاپلاس 2

فیلترهای تیزکننده لاپلاس نسبت به روش اول جزئیات بیشتری از تصویر را مشخص می کنند. به عنوان مثال تصاویر زیر نتیجه اعمال فیلترهای تیزکننده مذکور را نشان می دهند:
  AISRG  
  تصویر اصلی  
AISRG AISRG AISRG
فیلتر تیزکننده اول لاپلاس ترکیبی 1 لاپلاس ترکیبی 2
 
 
شکل شناسی  - عملگرهای مجموعه ای
یکی از مهمترین مراحل در پیش پردازش تصویر ، پردازش شکل شناسی می باشد. در این قسمت تنها به بررسی شکل شناسی برای تصاویر دودویی خواهیم پرداخت. منظور از تصاویر دودویی ، تصاویر با دو سطح روشنایی 0 یا 1 می باشد که در آن منظور از 0 رنگ سیاه و منظور از 1 رنگ سفید می باشد.

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

عملگرهای مجموعه ای پایه :
این عملگر ها شامل عملگر اجتماع ، اشتراک ، تفاضل دو مجموعه می باشد. اگر هر تصویر باینری را یک مجموعه در نظر بگیریم ، اجتماع دو تصویر باینری هم اندازه ، همانطور که در شکل روبرو مشاهده می کنید تصویری خواهد بود که در این تصویر هر AISRG
پیکسلی که در تصویر اول یا تصویر دوم مقدار 1 داشته باشد ، مقدار 1 خواهد داشت. برای پیاده سازی عملگر اجتماع برای دو تصویر باینری ، می توانیم پیکسل های متناظر را در دو تصویر باهم ORبیتی کنیم.
اشتراک دو تصویر باینری هم اندازه ، نیز تصویری خواهد بود که در این تصویر هر پیکسلی که در تصویر اول و دوم مقدار 1 داشته باشد ، مقدار 1 خواهد داشت. برای پیاده سازی عملگر اشتراک برای دو تصویر باینری ، می توانیم پیکسل های متناظر را در دو تصویر باهم ANDبیتی کنیم. AISRG
تفاضل دو تصویر باینری هم اندازه ، تصویری خواهد بود که در این تصویر پیکسل هایی از تصویر اول با مقدار 1 که در تصویر دوم مقدارشان 1 نباشد ، مقدار 1 خواهند داشت. تفاضل را به شکل اشتراک تصویر دوم و مکمل تصویر اول نیز می توان تعریف کرد. AISRG
   
همچنین عملگر تک عملوندی مکمل نیز عملگری است که پس از اعمال آن بر روی تصویر باینری ، در تصویر حاصل شده ، مقادیر 1 به 0 و مقادیر 0 به 1 تغییر می یابند. برای پیاده سازی عملگر مکمل می توانیم هر پیکسل از تصویر بانری را NOT بیتی کنیم . AISRG
 
  گ
سترش باینری مورفولوژیکی
همانطور که از نام عملگر پیداست ، این عملگر باعث گسترش نقاط 1 در تصویر می شود. در عملگر گسترش نیز از یک ماسک ( نفاب ، پنجره ) - همانند آنچه که در "تعریف عمل فیلتر کردن" هست – استفاده می کنیم. در اینجا به جای ماسک به آن عنصر ساختمانی می گوییم که مقادیر عنصر ساختمانی 1 یا صفر می تواند باشد. گسترش تصویر A با عنصر ساختمانی B به صورت زیر تعریف می شود:

              

که در اینجا reflection عنصر ساختمانی B را حول مرکز خود قرینه می کند. به عبارت دیگر گسترش A با عنصر ساختمانی B بدین معنی است که اگر عنصر ساختمانی B را بر روی پیکسل های A حرکت دهیم ، و در هربار حرکت اشتراک عنصر ساختمانی با محدوده زیر عنصر ساختمانی در تصویر A تهی نباشد ، مقدار پیکسل مرکزی که عنصر ساختمانی بر روی آن قرار گرفته است ، برابر 1 خواهد شد. شکل روبور خروجی تصویری را پس از گسترش تصویر با عنصر ساختمانی 3*3 تمام 1 نشان می دهد.

پردازش تصویر در MATLAB
AISRG
تصویر اصلی
AISRG
حاصل گسترش تصویر

اعمال عملگر مورفولوژیکی گسترش در محیط MATLAB با استفاده تابع imdilate انجام می پذیرد.
>> BW1 = imread('circbw.tif');
>> SE = strel('rectangle',[5 5]);
>> BW2 = imdilate(BW1,SE);
>> imshow(BW1),figure,imshow(BW2)

سایش باینری مورفولوژیکی
همانطور که از نام عملگر پیداست ، این عملگر باعث سایش نقاط 1 در تصویر می شود. همانند عملگر گسترش ، درعملگر سایش نیز از یک عنصر ساختمانی استفاده می کنیم که مقادیر عنصر ساختمانی 1 یا صفر می تواند باشد. به ازای هر پیکسل ، مرکز عنصر ساختمانی را روی پیکسل قرار داده و عملگر سایش را با توجه به مقادیر عنصر ساختمانی در مورد آن پیکسل اعمال می کنیم. سایش تصویر A با عنصر ساختمانی B به صورت زیر تعریف می شود:

                       

به عبارت دیگر گسترش A با عنصر ساختمانی B بدین معنی است که اگر عنصر ساختمانی B را بر روی پیکسل های A حرکت دهیم ، و در هربار حرکت همه نقاطی که در زیر مقادیر 1 از عنصر ساختمانی قرار گرفته اند نیز ، مقدار یک داشته باشند ، مقدار پیکسل حاصل نیز 1 خواهد بود. شکل روبرو خروجی تصویر را پس از سایش تصویر با عنصر ساختمانی 3*3 تمام 1 نشان می دهد.

پردازش تصویر در MATLAB
AISRG
تصویر اصلی
AISRG
حاصل گسترش تصویر
<="" td="" dir="rtl" style="font-family: tahoma; font-size: 9pt; color: #333333; line-height: 20pt; text-align: justify; padding-right: 10px; padding-left: 10px;">
اعمال عملگر مورفولوژیکی سایش در محیط MATLAB با استفاده تابع imerode انجام می پذیرد.
>> BW1 = imread('circbw.tif');
>> SE = strel('rectangle',[5 5]);
>> BW2 = imerode(BW1,SE);
>> imshow(BW1),figure,imshow(BW2)

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

                               

اعمال عملگر باز کردن بر روی تصویر باینری موجب می شود تا اتصالات باریک تصویر حذف شده و تصویری آرام تر به دست آید. باز کردن تصویر از ترکیب عملگر سایش و گسترش و به صورت زیر به دست می آید :
                             

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

در برخی موارد به علت پایین بودن کیفیت تصویر اسکن شده و یا پاینن بودن کیفیت کاغذ مورد نظر در برخی از کاراکتر ها با شکستگی در بدنه حرف یا کلمه مواجه هستیم. در چنین مواردی می توان ارتقای تصویر از عملگر های مورفولوژیکی استفاده کرد.  توجه داشته باشید که شکل و اندازه عنصر ساختمانی نقش حیاتی در اعمال این عملگر ها بازی می کند.  به عنوان مثال تصاویر روبرو با اعمال یک عنصر ساختمانی 3*3 تمام 1 به وجود امده اند.  بدیهی است که تغییر اندازه و شکل عنصر ساختمانی نتایج دیگری می تواند تولید کند.

پردازش تصویر در MATLAB
AISRG
تصویر اصلی
AISRG
باز کردن تصویر
AISRG
بستن تصویر

اعمال عملگرهای مورفولوژیکی باز کردن و بستن در محیط MATLAB ببه ترتیب ا استفاده توابع imopen و imclose انجام می پذیرد.

>> originalBW = imread('circles.png');
>> se = strel('disk',10);
>> closeBW = imclose(originalBW,se);
>> imshow(originalBW),figure,imshow(closeBW)

استخراج اسکلت بندی اشیاء
استخراج اسکلت بندی یک الگو به معنی باریک کردن الگو به نحوی است که شکل کلی الگو از بین نرود. از اینرو اسکلت یک الگو همانند خود الگو باید قابل تشخیص بوده و توسط آن بتوان شکل کلی الگو را حدس زد. بنابراین اسکلت به دست آمده برای یک الگو باید دارای خصوصیات زیر باشد :
     • به اندازه کافی باریک باشد
    • متصل باشد : یعنی فرآیند اسکلت بندی نباید باعث تکه تکه شدن اسکلت الگو شود زمانی که این دو شرط برقرار شد، الگوریتم اسکلت بندی متوقف می شود. شکل روبرو تصویری را به همراه اسکلت آن نشان می دهد ( اسکلت تصویر همان خطوط به هم پیوسته سفید رنگ داخل تصویر است ).

در حالت کلی الگوریتم های استخراج اسکلت الگو بر پایه دو استراتژی مختلف هستند.


AISRG
در استراتزی اول از همه پیکسل های تصویر و در استراتژی دوم از پیکسل های کانتور تصویر برای این منظور استفاده می شود. روشی که ما در اینجا بررسی خواهیم کرد روش مبتنی بر پیکسل های تصویر بوده و به نام Hilditch معروف است که بر روی تصاویر دو سطحی ( باینری ) اعمال می کنیم.

تعاریف اولیه :
همسایه های هشتگانه پیسکل P1 را در نظر بگیرید : 
AISRG

هدف این است که در مورد حذف پیکسل P1 یا ماندن آن به عنوان یک پیکسل بر روی اسکلت تصمیم بگیریم. برای این منظور همسایه های هشتگانه آن را در جهت عقربه های ساعت مرتب کرده و دو تابع زیر را برای P1 تعریف می کنیم :
     • تابع  B: تعداد همسایه های غیرصفر P1 را برمی گرداند.
    • تابع A : تعداد الگوهای 1،0 در لیست P2,P3,P4,P5,P6,P7,P8,P9,P2 را بر می گرداند. الگوی 0,1 بدین معنی است که با در نظر گرفتن دو همسایه پشت سرهم مثل P6 و P7، مقدار P6 صفر بوده و P7 مقدار 1 داشته باشد. به عنوان مثال :
 
AISRG

الگوریتم اسکلت بندی :
الگوریتم Hilditch از یک پنجره 3*3 استفاده کرده و تازمانی تغییری در تصویر به وجود آید، به طور مداوم همه پیکسل های تصویر را بررسی می کند و به ازای هر پیکسل در صورتی که چهار شرط زیر برقرار شود، پیکسل جاری از تصویر حذف می گردد :
 
AISRG

شبه کد زیر نحوه اعمال این الگوریتم را نشان می دهد :
     1. تازمانی که تغییر دیگری حاصل نشود :
           a. کل تصویر پیمایش شده و پیکسل هایی که هر چهار شرط فوق برای آنها صادق باشد کاندیدای حذف شدن می شوند.
           b. پیکسل های کاندیدای حذف شدن ، از تصویر حذف می شوند

تتوجه داشته باشید که الگوریتم Hilditch الگوریتم کاملی نمی باشد چرا که بر روی برخی از انواع الگوها به درستی عمل نمی کند. به عنوان مثال الگوریتم Hilditch باعث ساییده شدن کامل الگوهای زیر می شود :
 
AISRG

در زیر اسکلت استخراج شده برای تعدادی تصویر با استفاده از الگوریتم Hilditch نشان داده شده است :/tr>
AISRG
AISRG

پردازش تصویر در MATLAB
استخراج اسکلت تصویر در MATLAB با استفاده از تابع bwmorph انجام می پذیرد.
>> BW1 = imread('circbw.tif');
>> BW2 = bwmorph(BW1,'skel',Inf);
>> imshow(BW1),figure, imshow(BW2)


منبع:http://aisthinktank.com/tutorial/dip/dipSkeleton.aspx

صفحات جانبی

نظرسنجی

    لطفاً نظرات خود را درمورد وبلاگ با اینجانب در میان بگذارید.(iman.sariri@yahoo.com)نتایج تاکنون15000مفید و 125غیرمفید. با سپاس


  • آخرین پستها

آمار وبلاگ

  • کل بازدید :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :