首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像反射约简

图像反射约简
EN

Stack Overflow用户
提问于 2017-06-15 13:39:13
回答 1查看 10.7K关注 0票数 24

照明问题是常见的和困难的。如何检测和减少光反射,以保存更多的信息,从一幅图像?我用OpenCV和Python尝试过几种方法,但都没有成功。

(带有反射的图像)

(无反射图像)

我尝试转换到HSV颜色空间,并将直方图均衡化应用于V通道,并使用克拉赫均衡:

代码语言:javascript
复制
import cv2
import numpy as np

image = cv2.imread('glare.png')

hsv_image = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)
h, s, v = cv2.split(hsv_image)

clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
v = clahe.apply(v)

hsv_image = cv2.merge([h, s, v])
hsv_image = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2RGB)

cv2.imwrite('clahe_h.png', hsv_image)

结果:

同时,我尝试了阈值化来找到明亮的像素,而不是使用图像修复来替换它们的相邻像素。

代码语言:javascript
复制
import cv2
import numpy as np

image = cv2.imread('glare.png')

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (3,3), 0)
thresh = cv2.threshold(blurred, 225, 255, cv2.THRESH_BINARY)[1]

dst_TELEA = cv2.inpaint(image,thresh,3,cv2.INPAINT_TELEA)
cv2.imwrite('after_INPAINT.png',dst_TELEA)

结果:(阈值后)

EN

回答 1

Stack Overflow用户

发布于 2019-08-17 17:29:23

目前尚无有效去除眩光的通用方法。

HSV + CLAHE是一个好的和常见的开端,但是业界的方法“欺骗”了一些关于被测对象的信息(人脸,传送带上的水果,通过检眼镜的视网膜),有时是关于照明的信息(这个问题中的图像有非常锐利的边缘的白色天花板灯)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44569067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档