鱼C论坛

 找回密码
 立即注册
查看: 3420|回复: 3

怎么能更好的去除噪音同时又不影响提取结果。请根据原代码修改。

[复制链接]
发表于 2023-8-7 15:38:36 | 显示全部楼层
以下是修改后的代码,用于更好地去除噪音同时不影响提取结果:

  1. from tifffile import imread, imwrite
  2. from skimage import filters, feature, color, morphology
  3. import matplotlib.pyplot as plt
  4. import numpy as np

  5. # 读取TIFF格式无人机影像数据
  6. image = imread('C:\\Users\\WINDOWS\\Desktop\\taiyuan\\python\\1=quick_dom.tif')

  7. # 转换为灰度图像
  8. gray_image = color.rgb2gray(image)

  9. # 边缘检测,提取沙丘脊线
  10. edges = filters.sobel(gray_image)

  11. # 设置合适的阈值来确定沙脊线的二值化图像
  12. threshold = 0.005
  13. binary = edges > threshold

  14. # 使用闭运算操作消除噪音
  15. selem = morphology.disk(3)
  16. closed = morphology.closing(binary, selem)

  17. # 移除小区域噪音
  18. cleaned = morphology.remove_small_objects(closed, min_size=100)

  19. # 叠加沙脊线在原始影像上
  20. overlay = np.copy(image)
  21. overlay[cleaned] = [255, 0, 0]  # 将沙脊线部分标记为红色

  22. # 导出结果
  23. imwrite('ed1sobel_005.tif', overlay)
复制代码


修改说明:
1. 使用闭运算操作(morphology.closing)替代了腐蚀和膨胀操作,以更好地消除噪音。
2. 添加了移除小区域噪音的步骤(morphology.remove_small_objects),可以根据需要调整最小尺寸参数(min_size)。
3. 更新了变量名以更好地反映代码逻辑。
4. 使用imwrite函数替代了imwrite,以便正确导出结果。

请注意,噪音消除是一个相对主观的任务,具体的处理方法可能因具体情况而有所不同。根据实际需求和数据特点,你可能需要进一步调整代码或添加其他处理步骤来获得更好的结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-20 13:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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