סינון גאוסי נמצא בשימוש נרחב בתחום עיבוד התמונה. הוא משמש להפחתת הרעש של תמונה. במאמר זה ניצור א גרעין גאוס דו מימדי. הגרעין הגאוסי הדו-ממדי עוקב אחר התפלגות גאוסית הנתונה להלן.
G(x y)=frac{1}{2pi sigma ^{2}}e^{-frac{x^{2}+y^{2}}{2sigma ^{2}}}
היכן y הוא המרחק לאורך הציר האנכי מהמקור x הוא המרחק לאורך הציר האופקי מהמקור ו? היא סטיית התקן.
מהו סינון גאוסי?
סינון גאוס הוא טכניקה המשמשת בעיבוד תמונה כדי להחליק תמונות ולהפחית רעש. זה עובד על ידי החלת אפקט טשטוש באמצעות פונקציה מתמטית הנקראת פונקציה גאוסית שנותנת משקל רב יותר לפיקסלים המרכזיים ופחות לאלו שמסביב. זה גורם לטשטוש במראה טבעי שעוזר להסיר פרטים לא רצויים כמו גרגרים או חפצים קטנים. סינון גאוס נמצא בשימוש נרחב כשלב עיבוד מקדים במשימות כמו זיהוי אובייקטים לזיהוי קצוות ושיפור תמונה המקלים על אלגוריתמים להתמקד בתכונות חשובות.
יישום ב-C++
C++// C++ program to generate Gaussian filter #include #include #include using namespace std; // Function to create Gaussian filter void FilterCreation(double GKernel[][5]) { // initialising standard deviation to 1.0 double sigma = 1.0; double r s = 2.0 * sigma * sigma; // sum is for normalization double sum = 0.0; // generating 5x5 kernel for (int x = -2; x <= 2; x++) { for (int y = -2; y <= 2; y++) { r = sqrt(x * x + y * y); GKernel[x + 2][y + 2] = (exp(-(r * r) / s)) / (M_PI * s); sum += GKernel[x + 2][y + 2]; } } // normalising the Kernel for (int i = 0; i < 5; ++i) for (int j = 0; j < 5; ++j) GKernel[i][j] /= sum; } // Driver program to test above function int main() { double GKernel[5][5]; FilterCreation(GKernel); for (int i = 0; i < 5; ++i) { for (int j = 0; j < 5; ++j) cout << GKernel[i][j] << 't'; cout << endl; } }
תְפוּקָה:
0.00296902 0.0133062 0.0219382 0.0133062 0.00296902
0.0133062 0.0596343 0.0983203 0.0596343 0.0133062
0.0219382 0.0983203 0.162103 0.0983203 0.0219382
0.0133062 0.0596343 0.0983203 0.0596343 0.0133062
0.00296902 0.0133062 0.0219382 0.0133062 0.00296902
יישומים מהעולם האמיתי של סינון גאוסי
מסננים גאוסים משמשים בטכנולוגיות יומיומיות רבות כדי לשפר את איכות התמונה ו לחלץ מידע שימושי :
- ראיית מחשב : עוזר לזהות קצוות וצורות על ידי הפחתת רעש לפני החלת אלגוריתמי זיהוי.
- הדמיה רפואית : משמש להחלקת סריקות MRI או CT מה שמקל על זיהוי רקמות וחריגות.
- זיהוי אובייקטים : מכין תמונות על ידי הסרת הסחות דעת המאפשרת לדוגמניות להתמקד בתכונות מפתח.
- כלי עריכת תמונות : נפוץ ליישום אפקטי טשטוש לרכך תמונות או להפחית גרעיניות למראה נקי יותר.
השוואה עם מסננים אחרים
הנה איך מסנן גאוסי בולט ממסננים נפוצים אחרים:
- מסנן תיבות (מסנן ממוצע) : מטשטש את התמונה על ידי נתינה משקל שווה לכל הפיקסלים שמסביב. מסנן גאוס עדיף כי הוא נותן משקל רב יותר למרכז פיקסלים יצירת טשטוש חלק יותר טבעי.
- מסנן חציוני : מחליף כל פיקסל ב- חֲצִיוֹן של ערכים קרובים וזה מצוין להסרה רעש של מלח ופלפל . בניגוד לגאוס, זה לא מטשטש את התמונה כל כך אבל עלול לעוות קצוות.
- מסנן דו צדדי : אוהב גאוס אבל גם שוקל עוצמת הפיקסלים הבדלים משמרים קצוות תוך כדי החלקה. זה יותר מתקדם אבל גם יותר כבד מבחינה חישובית .
סינון גאוסי דו מימדי לעומת דו מימדי
א מסנן גאוסי דו מימדי ניתן לפרק ל שני מסננים 1D - אחד אופקי ואחד אנכי. זה נקרא הפרדה וזה אומר שאנחנו לא צריכים ליישם גרעין דו-ממדי מלא בבת אחת.
למה זה חשוב:
במקום לעשות חישובים כבדים עם גרעין דו-ממדי גדול (למשל 5×5) אנו מיישמים ליבה 1D אופקית ואז ה אותו גרעין אנכית . זה מקצר את זמן החישוב ונותן את אותה תוצאה .
אחרת java
שיקולי ביצועים
יצירה ויישום א גרעין גאוסי יכול להיות יקר מבחינה חישובית במיוחד עבור תמונות גדולות או גרעינים.
- מורכבות זמן :
- לגרעין בגודל k × k מוחל על א n × n תמונה של מורכבות הזמן O(n² × k²) .
- הסיבה לכך היא שכל פעולת פיקסל כרוכה בלולאה על כל הליבה.
- אופטימיזציה - מסננים ניתנים להפרדה :
גרעינים גאוסים הם נָתִיק כלומר ניתן לפרוץ למסנן דו מימדי שני מסננים 1D : אחד אופקי ואחד אנכי.- זה מקטין את מורכבות הזמן ל O(n² × k) עושה את זה הרבה יותר מהר עבור גרעינים גדולים יותר.
שימוש במסננים הניתנים להפרדה הוא טריק נפוץ במערכות בעולם האמיתי כדי להאיץ את הסינון גאוסי מבלי לאבד איכות.
חובה לקרוא
- החל מסנן גאוס על תמונה עם Python
- כיצד ליצור מערך גאוסי דו-ממדי באמצעות NumPy?
- אינטגרציה של פונקציות גאוסיות
מַסְקָנָה
סינון גאוס הוא טכניקה פשוטה אך רבת עוצמה עבור הפחתת רעשי תמונה וטשטוש באמצעות ממוצע משוקלל חלק המבוסס על הפונקציה גאוסית. במאמר זה יצרנו א גרעין גאוס דו מימדי וחקר את תפקידו במגוון יישומים מהעולם האמיתי כמו ראייה ממוחשבת הדמיה רפואית ועריכת תמונות. השווינו אותו גם עם מסננים אחרים ודנו בדרכים לעשות זאת לייעל את הביצועים באמצעות מסננים הניתנים להפרדה. הסינון הגאוסי הכולל הוא א כלי יסוד בעיבוד תמונה עוזר לשפר את איכות התמונה ומקל על אלגוריתמים להתמקד בפרטים ויזואליים חשובים.