一、前言
本文探讨图像阴影部分提取,借鉴【博主】思想,处理图像:
图像处理都是光照条件比较好的,所以阴影部分的亮度就会比其他区域的亮度明显低不少;另外,由于亮度的降低,导致其色调比较浅,所以R、G、B三个通道数值的方差肯定比较小。通过调节阈值,实现比较好提取效果。
【会议文章】:http://cvrr.ucsd.edu/aton/shadow/
二、代码实现
我这里只是展示算法效果,并未进行形态学处理,ROI筛选以及上色。
通过阴影区域提取可进一步实现阴影去除。
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('yinying2.png')
img_sum = np.sum(img,axis=2)
std_img = np.std(img)
std_img = np.where(img_sum<250,std_img,255)
cv2.imwrite("std_img.png",std_img.astype(np.uint8))
plt.imshow(std_img)
此效果不佳
其它算法见:会议文章