设置首页收藏本站
开启左侧

在环境光多变情况下进行视觉分类

[复制链接]
Zcy1023 发表于 2025-10-10 16:13:46 | 显示全部楼层 |阅读模式
本帖最后由 Zcy1023 于 2025-10-10 16:15 编辑

请问怎样能在亮暗不一致情况下区分ok和ng。
ok图片

WIN_20250925_14_35_22_Pro.jpg WIN_20250925_14_31_54_Pro.jpg WIN_20250925_14_33_15_Pro.jpg
ng图片
WIN_20250925_14_38_50_Pro.jpg WIN_20250925_14_38_01_Pro.jpg WIN_20250925_14_36_34_Pro.jpg WIN_20250925_14_36_09_Pro.jpg WIN_20250925_14_34_59_Pro.jpg WIN_20250925_14_33_58_Pro.jpg WIN_20250925_14_33_32_Pro.jpg
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
大凡光学,专注标定板提供
三万光年 发表于 2025-10-11 14:44:01 | 显示全部楼层
学习一下
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Mr.Han 发表于 2025-10-14 11:04:08 | 显示全部楼层
这种差异太大了,还是先从打光上解决吧
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
20250426Hh 发表于 2025-10-15 10:18:28 | 显示全部楼层
这貌似是穿带,按这个场景 要准确性高的话,至少分左中右三个 区域来用不同策略来检测OK NG
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| Zcy1023 发表于 2025-10-15 13:29:11 | 显示全部楼层
20250426Hh 发表于 2025-10-15 10:18
这貌似是穿带,按这个场景 要准确性高的话,至少分左中右三个 区域来用不同策略来检测OK NG ...

现在主要的问题是现场的环境光照波动太大,影响成像效果,能不能在图像处理方面把这个问题给规避了掉?使每张照片的灰度值变化没有那么大。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
holybang 发表于 2025-10-16 10:19:22 | 显示全部楼层
Zcy1023 发表于 2025-10-15 13:29
现在主要的问题是现场的环境光照波动太大,影响成像效果,能不能在图像处理方面把这个问题给规避了掉?使 ...

一个很简单的办法是,测量某个标准亮度区域的亮度(比如白墙),且这个区域不能在任何图里过曝(达到255左右灰度),计算整体亮度需要调整的比例系数,全图都乘以这个比例系数。

但是,你的图里面有很多是有局部过曝的,此时灰度信息是有丢失的,所以,整体亮度调整之后,这些过曝区域的亮度变化会不符合预期。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复 支持 1 反对 0

使用道具 举报

xah 发表于 2025-10-16 10:25:28 | 显示全部楼层
holybang 发表于 2025-10-16 10:19
一个很简单的办法是,测量某个标准亮度区域的亮度(比如白墙),且这个区域不能在任何图里过曝(达到255 ...

这确实是个好办法,灰度矫正!
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
holybang 发表于 2025-10-16 10:55:14 | 显示全部楼层
本帖最后由 holybang 于 2025-10-17 13:20 编辑
xah 发表于 2025-10-16 10:25
这确实是个好办法,灰度矫正!


第一列是原图,第二列是原图做灰度矫正,第三列是灰度矫正后做降噪,因为比较暗的图被算法强制拉成高亮之后噪声会被加强
crop_20251016_105134_656799600.png
crop_20251016_105135_837263600.png
crop_20251016_105136_408538400.png
crop_20251016_105136_830701800.png
crop_20251016_105137_303739300.png
crop_20251016_105137_836818900.png
crop_20251016_105138_346899300.png
crop_20251016_105138_835467100.png
crop_20251016_105139_398596200.png
crop_20251016_105139_940310400.png


Halcon代码如下
  1. path1 := '你的OK图文件夹'
  2. path2 := '你的NG图文件夹'
  3. list_files(path1, ['files'], FilePaths1)
  4. list_files(path2, ['files'], FilePaths2)

  5. tuple_concat(FilePaths1, FilePaths2, FilePaths)

  6. tuple_regexp_select (FilePaths, ['result','invert_match'], FilePaths)

  7. for Index := 0 to |FilePaths|-1 by 1
  8.    
  9.     tuple_select (FilePaths, Index, FilePath)
  10.     read_image (Image, FilePath)

  11.     decompose3(Image, ImageR, ImageG, ImageB)

  12.     * 设置测量亮度用的ROI
  13.     gen_rectangle1(BrightnessRoi, 635-19, 1325-102, 635+19, 1325+102)   
  14.     gray_features (BrightnessRoi, ImageG, 'mean', Brightness)
  15.    
  16.     * 计算亮度矫正系数
  17.     scale := 85/Brightness
  18.    
  19.     * 矫正亮度
  20.     scale_image(ImageG, ImageGS, scale, 0)
  21.    
  22.     * 截取感兴趣区域,方便加速后续处理,因为后续的降噪算子很耗时
  23.     crop_part(ImageGS, ImageGSCropped, 214, 851, 606, 454)
  24.     crop_part(ImageG, ImageGCropped, 214, 851, 606, 454)
  25.    
  26.     * 降噪(和我之前的结果不完全一致,因为halcon没有完全一样的降噪算子,这是最接近的)
  27.     anisotropic_diffusion(ImageGSCropped, ImageAniso, 'weickert', 5, 1, 10)
  28.    
  29.     * 创建一个图片列表对象,将三个图放一起,方便拼接保存到一个图
  30.     gen_empty_obj (ImageList)
  31.     concat_obj(ImageList, ImageGCropped, ImageList)
  32.     concat_obj(ImageList, ImageGSCropped, ImageList)
  33.     concat_obj(ImageList, ImageAniso, ImageList)   
  34.    
  35.     tile_images(ImageList, TiledImage, 3, 'horizontal')   
  36.    
  37.     tuple_str_replace (FilePath, '.jpg', '_result', ResultFilePath)
  38.     write_image(TiledImage, 'png', 0, ResultFilePath)
  39.    
  40. endfor
复制代码


奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| Zcy1023 发表于 2025-10-16 13:23:14 | 显示全部楼层
holybang 发表于 2025-10-16 10:55
第一列是原图,第二列是原图做灰度矫正,第三列是灰度矫正后做降噪,因为比较暗的图被算法强制拉成高亮 ...

您好,我觉得这种处理方式很有效果,能向您请教一下源码进行学习嘛?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
holybang 发表于 2025-10-16 13:55:25 | 显示全部楼层
Zcy1023 发表于 2025-10-16 13:23
您好,我觉得这种处理方式很有效果,能向您请教一下源码进行学习嘛?

Halcon代码要稍晚些我写一下
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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