接上之前的个人面部数据集制作
引言个人面部数据集制作,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 直方图均衡化