python 3.6 +openCV3 - 1色彩空间

单通道图(灰度图)

每个像素点只有一个值表示颜色(0-255),0是黑色,255是白色。
三通道的灰度图,三个通道值一样。

三通道图

每个像素点都有三个值表示。BGR图即为三通道图。

四通道图

加上alpha的色彩空间。alpha即为不透明度。

import cv2 as cv
import numpy as np

def get_image_infor(image):
    print(type(image)) # <class 'numpy.ndarray'>
    # height, width, channels
    print(image.shape) # (494, 500, 3)
    print(image.size) # 741000
    print(image.dtype) # uint8
    pixel_data = np.array(image)
    print(pixel_data) # 每个像素点的值, print(image)


src = cv.imread("test.png")  # blue, green, red
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)

get_image_infor(src)

cv.waitKey(0)
cv.destroyAllWindows()

更改每个像素点的值(慢,用API快很多)

def access_pixels(image):
    print(image.shape)
    hei = image.shape[0]
    wid = image.shape[1]
    cha = image.shape[2]
    print(wid, hei, cha)
    for r in range(hei):
        for c in range(wid):
            for ch in range(cha):
                pv = image[r, c, ch]
                image[r, c, ch] = 255 - pv
    cv.imshow("pixel_demo", image)

色彩空间模型

RGB
HSV

色相(Hue)是色彩的基本属性,就是平常说的颜色的名称。
饱和度(Saturation)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。
明度(Value/Brightness),取0-max(计算机中HSV取值范围和存储的长度有关)。HSV颜色空间可以用一个圆锥空间模型来描述。圆锥的顶点处,V=0,H和S无定义,代表黑色。圆锥的顶面中心处V=max,S=0,H无定义,代表白色。

HIS
YCrCb
YUV(YCrCb)

色彩空间的转化

def color_space_demo(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    cv.imshow("gray image", gray)
    hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)
    cv.imshow("HSV image", hsv)
    his = cv.cvtColor(image, cv.COLOR_BGR2HLS)
    cv.imshow("HLS image", his)
    ycrcb = cv.cvtColor(image, cv.COLOR_BGR2YCrCb)
    cv.imshow("Ycrcb image", ycrcb)
    yuv = cv.cvtColor(image, cv.COLOR_BGR2YUV)
    cv.imshow("YUV image", yuv)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值