opencv滤波利用

打印 上一主题 下一主题

主题 886|帖子 886|积分 2658

1.1 均值滤波

简朴的平均卷积利用
边框补0,每次选3 * 3个元素相加求平均值

  1. # 导入OpenCV库,用于图像处理
  2. import cv2
  3. # 从matplotlib库中导入pyplot模块,用于绘制图像
  4. from matplotlib import pyplot as plt
  5. # 创建一个名为'window'的窗口,窗口大小自动调整
  6. cv2.namedWindow('window', cv2.WINDOW_AUTOSIZE)  # cv2.WINDOW_AUTOSIZE: 窗口大小自动调整,不允许用户改变窗口大小
  7. # 使用OpenCV的imread函数读取名为"mao.jpg"的图片,参数1表示读取彩色图像
  8. cat = cv2.imread("mao.jpg", 1)  # cat变量存储读取的图像数据,OpenCV默认以BGR格式读取
  9. # 在名为'window'的窗口中显示图像
  10. cv2.imshow('window', cat)
  11. blur = cv2.blur(cat,(3,3)) #均值滤波
  12. cv2.imshow('blur', blur)
  13. # 等待按键事件,0表示无限期等待
  14. key = cv2.waitKey(0)
  15. # 检查按下的键是否是'q',如果是则销毁所有窗口
  16. if key & 0xFF == ord('q'):  # 0xFF是掩码,用于确保只检查最低8位
  17.     print("准备销毁窗口")
  18.     cv2.destroyAllWindows()
复制代码

1.2 方框滤波

处置惩罚效果=cv2.boxFilter(原始图像,目标图像深度,核大小,normalize属性),目标图像深度是-1表示和原图像大小雷同,效果几乎和均值滤波持平

true = 1 = 所有值相加 除以 矩阵元素的个数
false = 0 = 是k = 所有的元素相加,超过255时取255
  1. # 导入OpenCV库,用于图像处理  
  2. import cv2  
  3. # 从matplotlib库中导入pyplot模块,用于绘制图像  
  4. from matplotlib import pyplot as plt  
  5.   
  6. # 创建一个名为'window'的窗口,窗口大小自动调整  
  7. cv2.namedWindow('window', cv2.WINDOW_AUTOSIZE)  # cv2.WINDOW_AUTOSIZE: 窗口大小自动调整,不允许用户改变窗口大小  
  8.   
  9. # 使用OpenCV的imread函数读取名为"mao.jpg"的图片,参数1表示读取彩色图像  
  10. cat = cv2.imread("mao.jpg", 1)  # cat变量存储读取的图像数据,OpenCV默认以BGR格式读取  
  11.   
  12. # 在名为'window'的窗口中显示图像  
  13. cv2.imshow('window', cat)  
  14.   
  15. blur = cv2.blur(cat,(3,3)) #均值滤波  
  16. cv2.imshow('blur', blur)  
  17.   
  18. box = cv2.boxFilter(cat,-1,(3,3),normalize=True) #方框滤波  
  19. cv2.imshow('box', box)  
  20.   
  21. # 等待按键事件,0表示无限期等待  
  22. key = cv2.waitKey(0)  
  23.   
  24. # 检查按下的键是否是'q',如果是则销毁所有窗口  
  25. if key & 0xFF == ord('q'):  # 0xFF是掩码,用于确保只检查最低8位  
  26.     print("准备销毁窗口")  
  27.     cv2.destroyAllWindows()
复制代码
1.3 高斯滤波


效果=所有对应的卷积核 * 相应的值 相加
  1. # 导入OpenCV库,用于图像处理  
  2. import cv2  
  3. # 从matplotlib库中导入pyplot模块,用于绘制图像  
  4. from matplotlib import pyplot as plt  
  5.   
  6. # 创建一个名为'window'的窗口,窗口大小自动调整  
  7. cv2.namedWindow('window', cv2.WINDOW_AUTOSIZE)  # cv2.WINDOW_AUTOSIZE: 窗口大小自动调整,不允许用户改变窗口大小  
  8.   
  9. # 使用OpenCV的imread函数读取名为"mao.jpg"的图片,参数1表示读取彩色图像  
  10. cat = cv2.imread("mao.jpg", 1)  # cat变量存储读取的图像数据,OpenCV默认以BGR格式读取  
  11.   
  12. # 在名为'window'的窗口中显示图像  
  13. cv2.imshow('window', cat)  
  14.   
  15. blur = cv2.blur(cat,(3,3)) #均值滤波  
  16. cv2.imshow('blur', blur)  
  17.   
  18. box = cv2.boxFilter(cat,-1,(3,3),normalize=True) #方框滤波  
  19. cv2.imshow('box', box)  
  20.   
  21. aussian = cv2.GaussianBlur(cat,(3,3),1) #高斯滤波  
  22. cv2.imshow('aussian', aussian)  
  23.   
  24. # 等待按键事件,0表示无限期等待  
  25. key = cv2.waitKey(0)  
  26.   
  27. # 检查按下的键是否是'q',如果是则销毁所有窗口  
  28. if key & 0xFF == ord('q'):  # 0xFF是掩码,用于确保只检查最低8位  
  29.     print("准备销毁窗口")  
  30.     cv2.destroyAllWindows()
复制代码
1.4 中值滤波

中值滤波是取中间元素作为值,不如3X3的范围有9个元素,每次取第五个元素
  1. # 导入OpenCV库,用于图像处理  
  2. import cv2  
  3. # 从matplotlib库中导入pyplot模块,用于绘制图像  
  4. from matplotlib import pyplot as plt  
  5.   
  6. # 创建一个名为'window'的窗口,窗口大小自动调整  
  7. cv2.namedWindow('window', cv2.WINDOW_AUTOSIZE)  # cv2.WINDOW_AUTOSIZE: 窗口大小自动调整,不允许用户改变窗口大小  
  8.   
  9. # 使用OpenCV的imread函数读取名为"mao.jpg"的图片,参数1表示读取彩色图像  
  10. cat = cv2.imread("mao.jpg", 1)  # cat变量存储读取的图像数据,OpenCV默认以BGR格式读取  
  11.   
  12. # 在名为'window'的窗口中显示图像  
  13. cv2.imshow('window', cat)  
  14.   
  15. blur = cv2.blur(cat,(3,3)) #均值滤波  
  16. cv2.imshow('blur', blur)  
  17.   
  18. box = cv2.boxFilter(cat,-1,(3,3),normalize=True) #方框滤波  
  19. cv2.imshow('box', box)  
  20.   
  21. aussian = cv2.GaussianBlur(cat,(3,3),1) #高斯滤波  
  22. cv2.imshow('aussian', aussian)  
  23.   
  24. median = cv2.medianBlur(cat,5) #中值滤波  
  25. cv2.imshow('median', aussian)  
  26.   
  27. # 等待按键事件,0表示无限期等待  
  28. key = cv2.waitKey(0)  
  29.   
  30. # 检查按下的键是否是'q',如果是则销毁所有窗口  
  31. if key & 0xFF == ord('q'):  # 0xFF是掩码,用于确保只检查最低8位  
  32.     print("准备销毁窗口")  
  33.     cv2.destroyAllWindows()
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

民工心事

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表