OpenCV在低对比度缺陷检测中的应用实例

导读本文主要介绍opencv在低对比度缺陷检测中的应用实例。
实例一(lcd屏幕脏污检测)
参考实例来源:
https://stackoverflow.com/questions/27281884/low-contrast-image-segmentation
分析与说明:上图中的脏污图像因为对比度较低,所以无法通过常用的阈值方法处理提取,有时人眼观察也较费劲。常用的方法有梯度提取或频域提取。
链接主题中提到了kmeans聚类分割后提取:
二分类:
三分类:
乍一看效果还不错,但问题是我到底应该设置几个类别?第一张图我如何确定哪个区域正好是我的缺陷部分?本文采用了梯度方法来检测。
实现步骤与演示
实现步骤: ① 图像滤波--滤除杂讯; ② sobel提取边缘; ③ 形态学处理剔除杂讯; ④ 阈值提取--分割脏污区域; ⑤ 轮廓提取与标注。图像一:
gray = cv2.cvtcolor(img, cv2.color_bgr2gray)blur = cv2.gaussianblur(gray,(15,15),0)
x = cv2.sobel(blur,cv2.cv_16s,1,0,ksize=7)y = cv2.sobel(blur,cv2.cv_16s,0,1,ksize=7)absx = cv2.convertscaleabs(x) # 转回uint8absy = cv2.convertscaleabs(y)edged = cv2.addweighted(absx,1,absy,1,0)cv2.imshow(‘sobel’, edged)
k1=np.ones((11,11), np.uint8)thres = cv2.morphologyex(thres, cv2.morph_erode, k1)#膨胀操作cv2.imshow(‘morph_erode’,thres) #结果显示
contours,hierarchy = cv2.findcontours(thres, cv2.retr_external, cv2.chain_approx_none)for cnt in contours: (x, y, w, h) = cv2.boundingrect(cnt) if w 》 2 and h 》 2: cv2.drawcontours(img,cnt,-1,(0,0,255),1)
—版权声明—
仅用于学术分享,版权属于原作者。
若有侵权,请联系删除或修改!


先楫工业4.0全面解决方案Q&A
预计2026年我国3D人脸识别的市场规模超过98亿元人民币!
运营商今年的移动网络流量平均资费将再降低20%以上
关于cob led显示屏的报价,是由哪些因素影响的
用于AI推理的Ergo边缘处理器脱颖而出
OpenCV在低对比度缺陷检测中的应用实例
不断冒险造就百度,纵观百度的发展历程
直线马达3D打印技术被用于制作全自动咽拭子机器人
国家电网公司将全力推进2020重大攻关计划
华为否认A股传闻之后任正非卸任副董事女儿接替
华为P40 Pro或坐稳明年DxO第一霸主位置
十余年精耕研发,致力提升新能源磁元件性能
不使用辅助线圈是否可行?比如在初级线圈上检测来做原边反馈?
洲明体育成为曼城足球俱乐部LED显示战略合作伙伴
创基Type-C扩展坞8+1多功能拓展
dcdc电源与LDO电源的区别 dcdc电路和ldo电路的优缺点
雅马哈公布了一款可堪地表最强行列的电机 配置到1877马力!
一文知道NB-IOT的成本优势
采用微电脑处理技术的家庭无线电话防盗报警系统设计
三星推出全新智能激光投影仪