开启左侧

如何自动选出图中白色区域,不手动指定阈值

[复制链接]
chinasea 发表于 2018-5-31 13:19:28 | 显示全部楼层 |阅读模式
1.png 2.png 3.png
如何自动选出图中白色区域,不手动指定阈值,threshold通过灰度图可以手动选出,问题是我有批量的图片。新手请多指教。
Criss 发表于 2018-5-31 23:30:03 | 显示全部楼层
可以通过灰度直方图算出白色区域的范围,然后调整选取区域
  1. read_image (Image, 'C:/Users/Admin/Desktop/1.png')
  2. gray_histo (Image, Image, AbsoluteHisto, RelativeHisto)
  3. gen_region_histo (Region, RelativeHisto, 255, 255, 1)
  4. histo_to_thresh (RelativeHisto, 5, MinThresh, MaxThresh)
  5. threshold (Image, Region2, MinThresh, MaxThresh)
复制代码


hawei12323 发表于 2018-6-4 16:43:17 | 显示全部楼层
1. 小尺寸图像平滑(去噪) 2. 采用自动阈值分割,取较亮区域(针对于大面积缺陷区域) 3. 小尺寸开操作(去掉极小面积可忽略缺陷,或者计算每个缺陷连通域面积做筛选) 4. 经过第三步后如果发现无缺陷区域,则从平滑图像直方图中高灰度值区域按百分比获取阈值做定阈值分割(或直接采用local_threshold提取小面积缺陷) 5. 小尺寸开操作 6. 此时图像中显示的缺陷区域即为你需要的缺陷区域
阿梅 发表于 2019-9-12 10:26:27 | 显示全部楼层
  1. ImageFiles := []
  2. ImageFiles[0] := 'C:/Users/Administrator/Desktop/131515e4bxfxloll8nw84m.png'
  3. ImageFiles[1] := 'C:/Users/Administrator/Desktop/131512hszdqw33io3qsiaq.png'
  4. ImageFiles[2] := 'C:/Users/Administrator/Desktop/131503yq1eem8faeqlaf6l.png'
  5. for Index := 0 to |ImageFiles| - 1 by 1
  6.     read_image (Image, ImageFiles[Index])
  7.     mean_image (Image, ImageMean, 3, 3)
  8.     scale_image (ImageMean, ImageScaled, 5.93023, -866)
  9.     binary_threshold (ImageScaled, Region, 'max_separability', 'light', UsedThreshold)   
  10. endfor
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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