图像的表示方法

1 二值图像

  二值图像是指仅仅包含黑色和白色两种颜色的图像,在计算机中,通过一个数据集矩阵来表示和处理图像,每个矩阵点就是一个像素,像素是构成图像的基本单元,任何像素点的灰度值均为0或者255,分别代表黑色(0)和白色(255)。

2 灰度图像

  比二值图像表现出更丰富的细节信息,灰度图像在黑色与白色之间还有许多级的颜色深度,计算机会将灰度处理为256个灰度等级,用数值区间[0, 255]来表示,其中,255表示纯白色,0表示纯黑色,正好用一个字节的大小来表示。

3 彩色图像

  神经生理学角度:视网膜上有三种不同的颜色感受器,能感受三种不同的颜色:红绿蓝,即三基色,自然界中常见的各种色光都可以通过将三基色按一定比例混合构成。
  光学角度:颜色可解析为主波长、纯度、明度等。
  心理学和视觉角度:颜色可解析为色调、饱和度、亮度等。

上述不同的方式表述颜色的模式称为色彩空间,或颜色空间、颜色模式等,最常见的就是RGB色彩空间,其他的比如HSV、HLS等。

  在RGB色彩空间里,存在R、G、B三个通道,每个色彩通道值的范围都在[0, 255]之间,我们用这三个色彩通道组合表示颜色。对于彩色图像,每个通道都可以理解为一个独立的灰度图像,通常用三维数组表示。如下所示:

[[[ 37  56  89]
  [ 39  58  91]
  [ 39  58  91]
  ...
  [183 201 230]
  [180 198 227]
  [174 192 221]]

 [[ 24  43  76]
  [ 24  43  76]
  [ 23  42  75]
  ...
  [ 97 115 144]
  [ 98 116 145]
  [ 96 114 143]]

 [[ 40  60  95]
  [ 39  59  94]
  [ 38  58  93]
  ...
  [ 49  69 100]
  [ 50  70 101]
  [ 50  70 101]]

 ...

 [[  1   1   1]
  [  1   1   1]
  [  1   1   1]
  ...
  [  1   1   1]
  [  1   1   1]
  [  1   1   1]]

 [[  0   0   0]
  [  0   0   0]
  [  0   0   0]
  ...
  [  0   0   0]
  [  0   0   0]
  [  0   0   0]]

 [[  0   0   0]
  [  0   0   0]
  [  0   0   0]
  ...
  [  0   0   0]
  [  0   0   0]
  [  0   0   0]]]

  一张完整的图像可以分解为三基色的单色图,如下图所示,分别为原图、b通道图、g通道图、r通道图,注意:opencv中,通道顺序为B->G->R

import cv2
import numpy as np

def resetRGB(path, t):
	img = cv2.imread(path, cv2.IMREAD_UNCHANGED)

	if len(t) == 0:
		return img

	h, w, l = img.shape #图像的高、宽、通道数
	
	for row in range(h):
		for col in range(w):
			b, g, r = img[row, col]
			if t == "b":
				img[row, col] = (b, 0, 0)
			elif t == "g":
				img[row, col] = (0, g, 0)
			else:
				img[row, col] = (0, 0, r)
	
	return img

path = r"C:\Users\Administrator\Desktop\\1.jpg"

ori = resetRGB(path, "")
imgb = resetRGB(path, "b")
imgg = resetRGB(path, "g")
imgr = resetRGB(path, "r")
inputs = np.hstack((ori, imgb, imgg, imgr))

cv2.namedWindow('myPicture', 0)
cv2.imshow('myPicture',inputs)
cv2.waitKey(2000)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值