鱼C论坛

 找回密码
 立即注册
查看: 1121|回复: 10

[已解决]还是图像处理问题

[复制链接]
发表于 2022-3-27 22:01:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
关于中值滤波的疑问
就是我用中值滤波处理后图像变成全黑了
使用的图片

                               
登录/注册后可看大图

结果

                               
登录/注册后可看大图

  
代码
  1. import cv2
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import os
  5. from skimage import util  # 添加噪声

  6. mg = cv2.imread("./233.jpg", 0)  # 读入灰度图
  7. # 添加噪声
  8. noise_gaussian = util.random_noise(img, mode='gaussian')  # 高斯
  9. noise_salt = util.random_noise(img, mode='salt')  # 椒盐

  10. # # 均值滤波
  11. dst1_gaussian = cv2.blur(noise_gaussian, (5, 5))
  12. dst1_salt = cv2.blur(noise_salt, (5, 5))

  13. # # 中值滤波
  14. # print(noise_gaussian.dtype)
  15. noise_gaussian = noise_gaussian.astype(np.uint8)  # 不用就会报错
  16. noise_salt = noise_salt.astype(np.uint8)
  17. dst2_gaussian = cv2.medianBlur(noise_gaussian, 3)
  18. dst2_salt = cv2.medianBlur(noise_salt, 3)

  19. # 显示图像
  20. plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示汉字
  21. plt.subplot(221), plt.imshow(dst1_gaussian, "gray"), plt.title("均值滤波处理高斯")
  22. plt.subplot(222), plt.imshow(dst1_salt, "gray"), plt.title("均值滤波处理椒盐")
  23. plt.subplot(223), plt.imshow(dst2_gaussian, "gray"), plt.title("中值滤波处理高斯")
  24. plt.subplot(224), plt.imshow(dst2_salt, "gray"), plt.title("中值滤波处理椒盐")
  25. plt.show()
复制代码
最佳答案
2022-3-28 08:59:11
中值滤波处理得是数值型吧,可能你加了噪声之后破坏了数据类型,

然后全黑可能是你转换的数值类型不对,用 float32
  1. import cv2
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import os
  5. from skimage import util  # 添加噪声

  6. img = cv2.imread("./233.jpg", 0)  # 读入灰度图
  7. # 添加噪声
  8. noise_gaussian = util.random_noise(img, mode='gaussian')  # 高斯
  9. noise_salt = util.random_noise(img, mode='salt')  # 椒盐

  10. # # 均值滤波
  11. dst1_gaussian = cv2.blur(noise_gaussian, (5, 5))
  12. dst1_salt = cv2.blur(noise_salt, (5, 5))

  13. # # 中值滤波
  14. # print(noise_gaussian.dtype)
  15. noise_gaussian = noise_gaussian.astype(np.float32)              # 也可以用下面那种写法
  16. noise_salt = np.float32(noise_salt)
  17. dst2_gaussian = cv2.medianBlur(noise_gaussian, 3)
  18. dst2_salt = cv2.medianBlur(noise_salt, 3)

  19. # 显示图像
  20. plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示汉字
  21. plt.subplot(221), plt.imshow(dst1_gaussian, "gray"), plt.title("均值滤波处理高斯")
  22. plt.subplot(222), plt.imshow(dst1_salt, "gray"), plt.title("均值滤波处理椒盐")
  23. plt.subplot(223), plt.imshow(dst2_gaussian, "gray"), plt.title("中值滤波处理高斯")
  24. plt.subplot(224), plt.imshow(dst2_salt, "gray"), plt.title("中值滤波处理椒盐")
  25. plt.show()
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-27 22:02:35 | 显示全部楼层
我看别人也没用到 18 19 行
我一不用就要报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-28 01:02:35 | 显示全部楼层

回帖奖励 +30 鱼币

66666666666
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-28 07:43:01 | 显示全部楼层

回帖奖励 +30 鱼币

啊这,这是啥的啊????Python吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-28 08:00:28 | 显示全部楼层

回帖奖励 +30 鱼币

C丁洞杀O 发表于 2022-3-28 07:43
啊这,这是啥的啊????Python吗?

顶一下,拿鱼币
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-28 08:40:19 | 显示全部楼层

回帖奖励 +30 鱼币

刚开始学,还看不懂呢。帮忙顶一下吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-28 08:40:57 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-3-28 08:59:11 | 显示全部楼层    本楼为最佳答案   
中值滤波处理得是数值型吧,可能你加了噪声之后破坏了数据类型,

然后全黑可能是你转换的数值类型不对,用 float32
  1. import cv2
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import os
  5. from skimage import util  # 添加噪声

  6. img = cv2.imread("./233.jpg", 0)  # 读入灰度图
  7. # 添加噪声
  8. noise_gaussian = util.random_noise(img, mode='gaussian')  # 高斯
  9. noise_salt = util.random_noise(img, mode='salt')  # 椒盐

  10. # # 均值滤波
  11. dst1_gaussian = cv2.blur(noise_gaussian, (5, 5))
  12. dst1_salt = cv2.blur(noise_salt, (5, 5))

  13. # # 中值滤波
  14. # print(noise_gaussian.dtype)
  15. noise_gaussian = noise_gaussian.astype(np.float32)              # 也可以用下面那种写法
  16. noise_salt = np.float32(noise_salt)
  17. dst2_gaussian = cv2.medianBlur(noise_gaussian, 3)
  18. dst2_salt = cv2.medianBlur(noise_salt, 3)

  19. # 显示图像
  20. plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示汉字
  21. plt.subplot(221), plt.imshow(dst1_gaussian, "gray"), plt.title("均值滤波处理高斯")
  22. plt.subplot(222), plt.imshow(dst1_salt, "gray"), plt.title("均值滤波处理椒盐")
  23. plt.subplot(223), plt.imshow(dst2_gaussian, "gray"), plt.title("中值滤波处理高斯")
  24. plt.subplot(224), plt.imshow(dst2_salt, "gray"), plt.title("中值滤波处理椒盐")
  25. plt.show()
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-3-28 09:13:06 | 显示全部楼层
真的厉害
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-28 09:41:56 | 显示全部楼层
C丁洞杀O 发表于 2022-3-28 07:43
啊这,这是啥的啊????Python吗?

是的,图像处理那方面的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-28 09:43:53 | 显示全部楼层
isdkz 发表于 2022-3-28 08:59
中值滤波处理得是数值型吧,可能你加了噪声之后破坏了数据类型,

然后全黑可能是你转换的数值类型不对, ...

谢谢哥哥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-29 11:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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