بایگانی برچسب برای: پیاده سازی فیلتر گابور در متلب

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

برنامه های فیلتر دوبعدی گابور در پردازش تصویر

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

مثال پیاده سازی

(کد برای استخراج ویژگی گابور از تصاویر در MATLAB را می توان در http://www.mathworks.com/matlabcentral/fileexchange/44630 پیدا کنید.)

این یک مثال کاربردی در پایتون است :

import numpy as np

def gabor_fn(sigma, theta, Lambda, psi, gamma):
    sigma_x = sigma
    sigma_y = float(sigma) / gamma

    # Bounding box
    nstds = 3 # Number of standard deviation sigma
    xmax = max(abs(nstds * sigma_x * np.cos(theta)), abs(nstds * sigma_y * np.sin(theta)))
    xmax = np.ceil(max(1, xmax))
    ymax = max(abs(nstds * sigma_x * np.sin(theta)), abs(nstds * sigma_y * np.cos(theta)))
    ymax = np.ceil(max(1, ymax))
    xmin = -xmax
    ymin = -ymax
    (y, x) = np.meshgrid(np.arange(ymin, ymax + 1), np.arange(xmin, xmax + 1))

    # Rotation 
    x_theta = x * np.cos(theta) + y * np.sin(theta)
    y_theta = -x * np.sin(theta) + y * np.cos(theta)

    gb = np.exp(-.5 * (x_theta ** 2 / sigma_x ** 2 + y_theta ** 2 / sigma_y ** 2)) * np.cos(2 * np.pi / Lambda * x_theta + psi)
    return gb

برای پیاده سازی در تصاویر، به [1] مراجعه کنید .

این یک مثال کاربردی در MATLAB / Octave است :

function gb=gabor_fn(sigma,theta,lambda,psi,gamma)

sigma_x = sigma;
sigma_y = sigma/gamma;

% Bounding box
nstds = 3;
xmax = max(abs(nstds*sigma_x*cos(theta)),abs(nstds*sigma_y*sin(theta)));
xmax = ceil(max(1,xmax));
ymax = max(abs(nstds*sigma_x*sin(theta)),abs(nstds*sigma_y*cos(theta)));
ymax = ceil(max(1,ymax));
xmin = -xmax; ymin = -ymax;
[x,y] = meshgrid(xmin:xmax,ymin:ymax);

% Rotation 
x_theta=x*cos(theta)+y*sin(theta);
y_theta=-x*sin(theta)+y*cos(theta);

gb= exp(-.5*(x_theta.^2/sigma_x^2+y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi);

این مثال دیگر در Haskell است :

import Data.Complex (Complex((:+)))
gabor λ θ ψ σ γ x y = exp ( (-0.5) * ((x'^2 + γ^2*y'^2) / (σ^2)) :+ 0) * exp ( 0 :+ (2*pi*x'/λ+ψ) )
    where x' =  x * cos θ + y * sin θ
          y' = -x * sin θ + y * cos θ

(توجه: a :+ b بایدخوانده شده باشد به عنوان  )

ترجمه شده از سایت wikipedia

فیلتر گابور (Gabor filter) چیست؟ قسمت 1
فیلتر گابور (Gabor filter) چیست؟ قسمت 2
فیلتر گابور (Gabor filter) چیست؟ قسمت 3

فضای موجک

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

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

استخراج ویژگی ها از تصاویر

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

{\displaystyle G_{c}[i,j]=Be^{-{\frac {(i^{2}+j^{2})}{2\sigma ^{2}}}}\cos(2\pi f(i\cos \theta +j\sin \theta ))}

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

 

فیلتر گابور (Gabor filter) چیست؟ قسمت 1
فیلتر گابور (Gabor filter) چیست؟ قسمت 2
فیلتر گابور (Gabor filter) چیست؟ قسمت 3

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

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

مثالی از فیلتر گابور دو بعدی

مثالی از فیلتر گابور دو بعدی

تعریف

پاسخ ضربه آن توسط یک موج سینوسی (یک موج مسطح برای فیلترهای گابور دوبعدی) ضرب در یک تابع Gaussian تعریف می شود. به علت خاصیت پیچیدگی ضرب (تئوری پیچیدگی)، تبدیل فوریه یک پاسخ ضربه ای فیلتر گابور، کانولشنِ[پیچیدگی] تبدیلِ فوریه تابع هارمونیک (تابع سینوسی) و تبدیل فوریه تابع گاوسی است. فیلتر یک واقعیت و یک جزء تخیلی نشانگر مسیرهای متعامد دارد. دو جزء ممکن است به یک شماره پیچیده یا به استفاده ویژه شکل بگیرد.

پیچیده

واقعی

تخیلی

g(x,y;\lambda,\theta,\psi,\sigma,\gamma) = \exp\left(-\frac{x'^2+\gamma^2y'^2}{2\sigma^2}\right)\sin\left(2\pi\frac{x'}{\lambda}+\psi\right)

جایی که

x' = x \cos\theta + y \sin\theta\,

و

 

فیلتر گابور (Gabor filter) چیست؟ قسمت 1
فیلتر گابور (Gabor filter) چیست؟ قسمت 2
فیلتر گابور (Gabor filter) چیست؟ قسمت 3