发布于2019-08-07 14:33 阅读(2678) 评论(0) 点赞(2) 收藏(2)
因为背景是固定颜色,很容易筛选出背景,然后将其设为白色完全透明即可。
#coding=utf-8
import cv2 as cv
bg_color = [197, 102, 6]
def calc_diff(pixel):
'''
计算pixel与背景的离差平方和,作为当前像素点与背景相似程度的度量
'''
return (pixel[0]-bg_color[0])**2 + (pixel[1]-bg_color[1])**2 + (pixel[2]-bg_color[2])**2
def remove_bg():
image_path = './logo.png'
logo = cv.imread(image_path)
logo = cv.cvtColor(logo, cv.COLOR_BGR2BGRA) #将图像转成带透明通道的BGRA格式
h, w = logo.shape[0:2]
for i in range(h):
for j in range(w):
if calc_diff(logo[i][j]) < 3000:
#若果logo[i][j]为背景,将其颜色设为白色,且完全透明
logo[i][j][0] = 255
logo[i][j][1] = 255
logo[i][j][2] = 255
logo[i][j][3] = 0
if __name__ == '__main__':
print(calc_diff([206,125,43]))
remove_bg()
emmm,事实证明背景附近的颜色不是严格的背景色,后来将字填充后好多了。
作者:pinggo
链接:https://www.pythonheidong.com/blog/article/11342/c03e2aed7ff4b89c49be/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!