opencv进行颜色覆盖

import cv2
import os
import numpy as np
import pandas as pd
from PIL import Image

读取图像

img_path="./images/bird.png"
img=cv2.imread(img_path)
img=img[:,:,::-1]

opencv进行颜色覆盖_第1张图片

 

#opencv含有四个滤波器\cv只能处理BGR格式
blur=cv2.blur(np.array(img[:,:,::-1]),(5,5))#均值滤波
#只能接受array格式
##或者 blur=cv2.blur(img_to_array,(5,5))   img0=img_to_array
blur0=cv2.medianBlur(blur,5)#中值滤波
blur1=cv2.GaussianBlur(blur0,(5,5),0)#高斯滤波
blur2=cv2.bilateralFilter(blur1,9,75,75)#双边滤波

opencv进行颜色覆盖_第2张图片

 

BGR(蓝绿色红色)转换为HSV(色相饱和度值)

因为像素B,G和R的取值与落在物体上的光相关,因此这些值也彼此相 关,无法准确描述像素。相反,HSV空间中,三者相对独立,可以准确描述像素的亮度,饱和度 和色度。

hsv=cv2.cvtColor(blur2,cv2.COLOR_RGB2HSV)

使用OpenCV进行颜色分割中最重要步骤——阈值分割

low_blue=np.array([80,0,0])
high_blue=np.array([255,255,255])
mask=cv2.inRange(hsv,low_blue,high_blue)#“Mask”将所有不在描述对象范围内的其他像素进行覆盖

opencv进行颜色覆盖_第3张图片

 

res=cv2.bitwise_and(img,img,mask=mask)#RGB图像选取掩膜选定的区域

opencv进行颜色覆盖_第4张图片

 

你可能感兴趣的:(opencv,python,人工智能)