گزينه هاي كانولوشن و همبستگي
دستور imfilter قادر به فيلتر كردن از هر دو طريق كانولوشن و همبستگي است. به طور پيش فرض عمل را به دستور فوق ‘conv’ همبستگي انجام خواهد شد. اگر مايل به انجام كانولوشن هستيد، آرگومان رشت هايِ اضافه كنيد. براي مثال:
>>A = magic(5);
>>h = [‐1 0 1]
>>imfilter(A,h) % filter using correlation
ans =
24 ‐16 ‐16 14 ‐8
5 ‐16 9 9 ‐14
6 9 14 9 ‐20
12 9 9 ‐16 ‐21
18 14 ‐16 ‐16 ‐2
>>imfilter(A,h,’conv’) % filter using convolution
ans =
‐24 16 16 ‐14 8
‐5 16 ‐9 ‐9 14
‐6 ‐9 ‐14 ‐9 20
‐12 ‐9 ‐9 16 21
‐18 ‐14 16 16 2
گزينه هاي گستراندن مرز
خرید کد
براي محاسبه ي مقدار تصوير خروجي در لبه ها، در فرآيند همپوشاني ومحاسبه ي مجموع حاصلضربها نظيري براي عناصر لبه اي ماتريس پاسخ ضربه در تصوير اصلي وجود ندارد.شكل زير اين مطلب را نشان مي دهد:
دستور imfilter مقادير مذكور در تصوير ورودي را برابر صفر در نظر مي گيرد (گستراندن با صفر) :
اگر از شيوه ي گستراندن با صفر براي فيلتر كردن استفاده كنيم، در تصوير خروجي ممكن است يك نوار سياه رنگ مشاهده شود. اين پديده در مثال زير نشان داده شده است:
خرید کد
نتيجه:
اگر پديده ي فوق برايتان نامطلوب است، مي توانيد از گزينه ي ديگري كه در دستور imfilter موجود است، استفاده كنيد. اين گزينه، تكثير مرز نام داشته و در حقيقت مقدار پيكسلهاي خارج از مرز را برابر مقدار نزديكترين پيكسل داخل مرز در نظر مي گيرد. اين عمل در شكل زير نشان داده شده است:
براي استفاده از چنين قابليتي بايد از آرگومان رشته اي ‘replicate’ استفاده كنيد:
خرید کد
نتیجه:
علاوه بر دو گزينه ي فوق الذكر، چند گزينه ي ديگر نيز براي گستراندن مرز وجود دارد از جمله و ‘circular’ مراجعه كنيد. imfilter براي توضيحات بيشتر به صفحه ي مرجعِ دستورِ . ‘symmetric’
نویسنده: دکتر هادی گرایلو





