栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

【图像处理】镜头去污渍(未完全实现):python + OpenCV

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【图像处理】镜头去污渍(未完全实现):python + OpenCV

接上之前的个人面部数据集制作

个人面部数据集制作,opencv + python + C++_子根的博客-CSDN博客

引言

用笔记本的摄像头拍的面部数据,脸占整个图片的比例太小,如果太靠前摄像头眼镜又难受,所以用家里闲置的摄像头来拍,自己想摆什么POSS都行。

但是那个摄像头有点坏坏的,所以出街买了502胶水将它粘好,然后通电,发现胶水渗进镜头里去了,拍出来的图片带有污渍阴影,所以想呀图像处理的方法改善一下图片质量。

代码的思路是,先将源图每个通道【R、G、B】进行中值滤波一下,然后将污渍图片的每个通道进行高斯滤波(尽可能大),最后将处理过后的源图通道减去处理过后的污渍通道

 代码
import cv2

a = cv2.imread('F:/face/2.png')
(b, g, r) = cv2.split(a)
a_bH = cv2.medianBlur(b,1)
a_gH = cv2.medianBlur(g,1)
a_rH = cv2.medianBlur(r,1)
a = cv2.merge((a_bH, a_gH, a_rH))

b = cv2.imread('F:/face/aaa.png',1)
(b, g, r) = cv2.split(b)
b_bH = cv2.GaussianBlur(b,(35,35),0)
b_gH = cv2.GaussianBlur(g,(35,35),0)
b_rH = cv2.GaussianBlur(g,(35,35),0)
b = cv2.merge((b_bH, b_gH, b_rH))

bh = a_bH - b_bH
gh = a_gH - b_gH
rh = a_rH - b_rH

c = cv2.merge((bh, gh, rh))

# c = cv2.bitwise_and(a,b)
# c = cv2.subtract(a, c)

cv2.imshow('1', a)
cv2.imshow('2', b)
cv2.imshow('3', c)

cv2.waitKey()
cv2.destroyAllWindows()
结果

 

效果还是有的,只是不太理想,比如说空白背景也被减掉了,显示成红色的了,不过影响不大(希望吧) 

参考博客:

python+opencv均值滤波,高斯滤波,中值滤波,双边滤波_月下花弄影的博客-CSDN博客_opencv python 高斯滤波

python+opencv直方图均衡化_我是小蚂蚁的博客-CSDN博客_opencv 直方图均衡化 

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037466.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号