• opencv入门之RGB转HSV并更换背景


    1 demo展示

    先贴上完整代码,

    import cv2
    
    image = cv2.imread('test.jpg') # 根据路径读取一张图片
    cv2.imshow("BGR", image) # 显示图片
    
    # 转化图片到HSV色彩空间,注意opencv读取RGB图片的方式是BGR
    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
    
    # 改变HSV值使背景为蓝色
    for x in range(0, len(hsv)):
        for y in range(0, len(hsv[0])):
        	# 因为脸部有一部分跟背景颜色相近,所以加了如下判断排除脸部
            face = False
            if x>=170 and x<=300 and y>=170 and y<=430:
                face = True
            # 选择原本浅绿色背景(H值为75-90左右,这可以通过print大致看出)
            if hsv[x, y][0]>=75 and hsv[x, y][0]<=90 and not face:
            	# 网上可查蓝色大概对应的H,S,V值
                hsv[x, y][0] = 110 # x,y是像素点坐标,注意实践中这里x,y是反的0代表H通道
                hsv[x, y][1] = 100
    # 展示改变效果需要换回RGB图片
    image_new = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
    cv2.imshow("image_new", image_new) # 显示图片
    cv2.imwrite("image_new.jpg", image_new)
    cv2.waitKey(0)
    

    原始图像如下:
    在这里插入图片描述
    改变HSV值后的图像如下(不加脸部判断):
    在这里插入图片描述
    加了脸部判断后如下:
    在这里插入图片描述

  • 相关阅读:
    【收集】13款Linux系统有
    【收集】13款Linux系统有
    献给母亲节的沙画,致此生最爱——母亲!
    ACM2136
    WTF is The BlockChain?
    Java 多线程(上)
    Kubernetes集群部署DNS插件
    Vue组件
    写在APIO2016之前
    5G-NR物理信道与调制-下行链路v1.1.0
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13281712.html
Copyright © 2020-2023  润新知