程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(2)

opencv实现图像去除单一颜色背景

发布于2019-08-07 14:33     阅读(2504)     评论(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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

效果:

原图
在这里插入图片描述
emmm,事实证明背景附近的颜色不是严格的背景色,后来将字填充后好多了。
在这里插入图片描述



所属网站分类: 技术文章 > 博客

作者:pinggo

链接:https://www.pythonheidong.com/blog/article/11342/c03e2aed7ff4b89c49be/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

2 0
收藏该文
已收藏

评论内容:(最多支持255个字符)