Ali Ismael نشر 17 أكتوبر 2021 أرسل تقرير نشر 17 أكتوبر 2021 لدي صورة تحوي بعض الضجيج الغاوصي عليها، وأريد التخفيف منه، كيف يمكنني استخدام التابع gussianBlur للقيام بالمهمة؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 17 أكتوبر 2021 أرسل تقرير نشر 17 أكتوبر 2021 لتطبيق المرشح الغاوصي على الصورة نقوم أولاً بقراءة الصورة، ثم نقوم بتطبيق التابع GaussianBlur على الصورة: GaussianBlur(src, ksize, sigmaX,sigmaY) حيث أن الوسيط الأول يمثل الصورة المراد تطبيق الترشيح عليها، والوسيط الثاني يمثل حجم الكيرنل (النواة) التي سيتم تطبيقها على الصورة (عبارة عن مصفوفة ذات بعد فردي، يتمتمريرها على الصورة نسميها Gaussian Kernal)، أما الوسيط الثالث و الأخير فيمثلان الانحراف المعياري على كل محور (زيادة الانحراف تؤدي إلى زيادة التنعيم -تشويه الحواف-). في المثال التالي سأقوم بإضافة ضجيج غاوصي إلى صورة، ثم سأقوم بإزالته باستخدام المرشح الغاوصي: import cv2 as cv import numpy as np import matplotlib.pyplot as plt # قراءة الصورة image=cv.imread("/content/gray.png",0) # إضافة الضجيج الغاوصي لها بشكل يدوي gauss=np.random.normal(0,0.5,image.shape).astype('uint8') gauss_image=cv.add(image,gauss) # تطبيق المرشح filtered_image= cv.GaussianBlur(gauss_image,(5,5),1) # عرض النتائج plt.figure(figsize=(25,15)) plt.subplot(131) plt.imshow(image, cmap='gray') plt.title("gray_image") plt.subplot(132) plt.imshow(gauss_image, cmap='gray') plt.title("gray_image with noise") plt.subplot(133) plt.imshow(filtered_image, cmap='gray') plt.title("image after applying gaussian filter") الخرج: 1 اقتباس
1 Ahmed Sharshar نشر 17 أكتوبر 2021 أرسل تقرير نشر 17 أكتوبر 2021 إذا أردت استخدام المرشج الجاوسي Gaussian filter من أجل تنقية الصورة من الضجيج الجاوسي Gaussian noise فيجب في البداية أن نفهم من أين يأتي الضجيج. في البداية Gaussian noise هي بعض الضوضاء التي تأتي من التوزيع الجاوسي Gaussian distribution والتي تحدث خللاً له نمط في الصور، ولازالتها نقوم بتنعيم الصورة عن طريق عمل مصفوفة أحادية وقسمتها على عددها كالتالي: 1/3 * [1 1 1 1 1 1 1 1 1] ويتم تطبيق المصفوفة على كل بيكسل في الصورة بحيث تعمل كانها تأخذ المتوسط فيقلل هذا تأثير الضوضاء، المثال التالي يوضح هذا: import numpy as np import cv2 import matplotlib.pyplot as plt %matplotlib inline # قراءةالصورة img = cv2.imread('./imagesStackoverflow/danish_invoice.png') # تطبيق الفلتر blur = cv2.GaussianBlur(img,(5,3), 1) # عمل حد للصورة لتحويلها لأبيض وأسود mask=cv2.inRange(blur,(0,0,0),(150,150,150)) # عكس الصورة res = 255 - mask plt.figure(1) plt.subplot(121), plt.imshow(img[:,:,::-1]), plt.title('original') plt.subplot(122), plt.imshow(blur, cmap='gray'), plt.title('blurred') plt.figure(2) plt.subplot(121), plt.imshow(mask, cmap='gray'), plt.title('masked') plt.subplot(122), plt.imshow(res, cmap='gray'), plt.title('result') plt.show() ويكون الناتج في صورة من ملف كالتالي: اقتباس
السؤال
Ali Ismael
لدي صورة تحوي بعض الضجيج الغاوصي عليها، وأريد التخفيف منه، كيف يمكنني استخدام التابع gussianBlur للقيام بالمهمة؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.