首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何去除opencv中图像中的眩光?

如何去除opencv中图像中的眩光?
EN

Stack Overflow用户
提问于 2020-04-09 12:59:42
回答 1查看 5.8K关注 0票数 2

这个mathematica代码移除图像中的眩光:

代码语言:javascript
运行
复制
img = Import["foo.png"]
Inpaint[img, Dilation[saturated, DiskMatrix[20]]]

如最受欢迎的答复中所示:

https://dsp.stackexchange.com/questions/1215/how-to-remove-a-glare-clipped-brightness-from-an-image

我想用opencv代替Mathematica来获得同样的结果。如何在opencv中编写等效代码?

EN

回答 1

Stack Overflow用户

发布于 2020-04-09 20:47:19

下面是如何在Python/OpenCV中做到这一点。

但是我不认为OpenCV修复例程正在工作,或者至少对我的Python3.7.5和OpenCV 3.4.8没有很好的工作。

输入:

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

# read image
img = cv2.imread('apple.png')

# convert to gray
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# threshold grayscale image to extract glare
mask = cv2.threshold(gray, 220, 255, cv2.THRESH_BINARY)[1]

# Optionally add some morphology close and open, if desired
#kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (7,7))
#mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel, iterations=1)
#kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3,3))
#mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel, iterations=1)


# use mask with input to do inpainting
result = cv2.inpaint(img, mask, 21, cv2.INPAINT_TELEA) 

# write result to disk
cv2.imwrite("apple_mask.png", mask)
cv2.imwrite("apple_inpaint.png", result)

# display it
cv2.imshow("IMAGE", img)
cv2.imshow("GRAY", gray)
cv2.imshow("MASK", mask)
cv2.imshow("RESULT", result)
cv2.waitKey(0)

缩影图像:

结果:

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

https://stackoverflow.com/questions/61121763

复制
相关文章

相似问题

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