opencv threshold_Opencv从图像中去除眩光

6e98cb5ab3b9a7c32a4cd610cf522130.png

眩光治疗法师登场。

待处理眩光图

grids.png

9e2e77ecc6516c103d0157731c87c42a.png

一个Matlab代码提示

How to remove the glare and brightness in an image (Image preprocessing)?

m_img = cv2.medianBlur(img,5)

ret,th1 = cv2.threshold(m_img,180,255,cv2.THRESH_BINARY)

timg = cv2.inpaint(cimg,th1,9,cv2.INPAINT_NS)

结果不美好,错误示范

ab89d5c907e6d3db279bfe735d50a0fc.png

这个改进失去了我想要的网格信息

这里有个提示

How to remove glare from image

但我在图像处理中找不到任何偏振滤镜实现。

任何人都可以建议任何改进,这样我可以在不丢失网格的情况下失去眩光吗?

解决方案:

C++算法大致步骤:HSV通道分离,阈值分割,再填充颜色。255判断那里是对分割后的二值图进行操作。

#include 

自己动手实现的结果

配置环境:opencv4.0,VS2017

特别注意:

cvtColor(bgr_frame, hsv_frame, COLOR_BGR2HSV);
threshold(channels[0], channels[0], 63, 255, THRESH_BINARY);

8a18c816da30ea3b36e8dc0a6780d6d5.png

从这个图的效果看,是对原图二值化后,填充颜色与原图近似的效果。

How to remove these small glare from the image?​answers.opencv.org

python实现

import 
https://answers.opencv.org/question/179998/how-to-remove-these-small-glare-from-the-image/​answers.opencv.org

b4582372ed2965a4aefe484050762139.png

ce09b5eacfb9a1921249cf60ac76a1c8.png

a248598d8c4a0d740a1e1a4d67477acc.png

72a3e80e6997071d6f855df0c44483e1.png

203495e416b26f5690f20722f79d4ea5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值