camera脏污检测算法

2023-10-13 03:40
文章标签 算法 检测 camera 脏污

本文主要是介绍camera脏污检测算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.脏污检测算法类型

1.1目前我知道的检测算法(opencv halcon c++):

1.1.1空域检测

将图像分块检测每块与周围的亮度差,然后将亮度差大的进行连接,组成污点块簇,这种检测算法需要将图像分成多种不同网格大小的图像,计算量较大,即便这样,还是会有部分污点落下。适合2010年之前的摄像头图像品质要求。现在已经很少使用了。低端安防行业还在使用。

1.1.2高通滤波

针对边缘明显的污点较为有效,但浅污点效果不好。

1.1.3带通滤波

频域带通滤波,先频域检测中频污点,然后空域计算反差亮,设置阈值进行管控。

效果如下:

sdf
原始图
阈值A检测
阈值B检测

 写在最后,非公益项目,需要合作请联系。

附脏污检测背景:

传统摄像模组的组装生产和指标检测主要依赖人工手工操作、肉眼判断,随着工作时间加长,工人的生产效率会下降、误差率会上升,而且生产成本也比较高。这样的生产流程与工艺,对于高品质产品的一致性保证是一个很大的问题。面对未来消费电子产品对于高品质模组的要求以及指数级增长的产品数量市场需求,传统模组生产工艺很难满足挑剔的客户。要想在严峻的市场竞争中保持竞争力,自动化、批量化、标准化的生产工艺势在必行。虽然,摄像模组检测在韩国、日本等国有一些相关的设备,但是价格非常高昂,完全引进国外设备对国内的摄像模组生产企业有很重负担。因此,对这类摄像模组检测的设备的国产化研发很有必要,这将对我国国民经济发展以及从中国制造向中国智造的转型升级有重要意义。

附一段类似的代码吧,思路可以,不过我的与此代码差别很大

Halcon -表面瑕疵脏污检测
1、拿到一张图片,我们在看到Halcon例子中有一篇find_Scratches_bandpass_fft.dev。其中就讲到了核心的几个算子,用来对空间图像转变成频域的图像。即进行傅里叶变换。
例子中在读入一张图片,进行预处理使用gauss_filter图像平滑,然后进行的正弦带通滤波。gen_sin_bandpass(ImageFilter,Frequency,Norm,Mode,Width,Height)Frequency指的是频率0-1之间。Norm因子归一化方式:‘n’或‘none’。Mode决定滤波器的DC-trem在哪里或者滤波器是否可以在实数快速傅里叶变换中使用。剩下的参数是图片的宽和高。
一般还可以使用两个,注意是两个下面的算子,得到的输出图片相减,输出的图片,形成带通滤波。gen_gauss_filter(ImageGuass,sigma1,sigma1,0,‘none’,‘rft’,width,height)来代替正弦带通滤波。在halcon关于这个算子的介绍中,有这么一句话需要注意 If fft_image and fft_image_inv are used for filtering, Norm = ‘none’ and Mode = ‘dc_center’ must be used. If rft_generic is used, Mode = ‘rft’ must be used.
2、下面进行对图像做实数快速傅里叶变换
rft_generic(输入的byte图像即先前高斯平滑的图像,输出图像格式complex也就是ImageFFT, ‘to_freq’, ‘none’, ‘complex’, Width) 其中输出图片的大小是(w/2+1)h。与卷积后再反傅里叶变换图片大小相对应
3、根据一个滤波器对图像在频域做卷积。图像用上面生成的正弦滤波器做一次卷积。convol_fft(ImageFFT,ImageBnadpass,ImageConvol)
4、反傅里叶变换,其中的参数改为‘from_freq’。此时输出图像大小计算为2w-2
5、形态学分离出划痕。
 

这篇关于camera脏污检测算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200512

相关文章

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.