前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图像高光消除

图像高光消除

作者头像
裴来凡
发布2022-05-29 10:05:50
4490
发布2022-05-29 10:05:50
举报
文章被收录于专栏:图像处理与模式识别研究所
代码语言:javascript
复制
from skimage import data, color, io
from matplotlib import pyplot as plt
import numpy as np
import math
image=io.imread('C:/Users/xpp/Desktop/Lena.png')
r=image[:,:,0]
g=image[:,:,1]
b=image[:,:,2]
#样本区域
r_templat=r[0:0,460:460]
r_template_u=np.mean(r_template)
r_template_d=0.0
for i in range(r_template.shape[0]):
    for j in range(r_template.shape[1]):
        r_template_d=r_template_d+(r_template[i,j]-r_template_u)*(r_template[i,j]-r_template_u)
r_template_d=math.sqrt(r_template_d/r_template.shape[0]/r_template.shape[1])
r_cut=np.zeros(r.shape,dtype='uint8')
for i in range(r.shape[0]):
    for j in range(r.shape[1]):
        if r[i,j]>=(r_template_u-1.25*r_template_d) and r[i,j]<=(r_template_u+1.25*r_template_d):
            r_cut[i,j]=1
image_cut=np.zeros(image.shape,dtype='uint8')
for i in range(r.shape[0]):
    for j in range(r.shape[1]):
        if r_cut[i,j]==1:
            image_cut[i,j,:]=image[i,j,:]
plt.figure()
plt.axis('off')
plt.imshow(image) 
plt.figure()
plt.axis('off')
plt.imshow(r)  
plt.figure()
plt.axis('off')
plt.imshow(g)  
plt.figure()
plt.axis('off')
plt.imshow(b)  
plt.figure()
plt.axis('off')
plt.imshow(r_cut) 
plt.figure()
plt.axis('off')
plt.imshow(image_cut)
plt.show()

算法:图像高光消除是进行高光提取并弱化背景区域。

文献:陈锻生,刘政凯. (2003). 彩色图像人脸高光区域的自动检测与校正方法. 软件学报, 14(11), 7.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档