OpenCv 색 공간

목차

1. RGB

2. 영상처리 소개

3. 색공간 변환


1. RGB

이미지를 표현할 때 다양한 색상 모델이 있지만 가장 많이 사용되는 것은 RGB(Red, Green, Blue) 모델입니다. , R, 녹색) G와 파란색 B)를 혼합하면 다양한 색상을 표현할 수 있습니다.
각 기본 색상(R, G, B)은 일반적으로 채널을 나타내며 그 값 범위는 0, 255] 범위 내의 정수 값입니다. 따라서 각 채널마다 총 256개의 이산 값이 가능하며, 이는 색상 채널 값을 표현하는 데 사용되는 전체 비트 수(28=256)에 해당합니다. 또한 RGB 모델을 사용하여 표현된 이미지는 세 가지 채널이 있으므로 24비트 색심도 이미지라고 합니다.

가장 일반적인 색 공간은 RGB이며 인간의 눈도 RGB 색 공간을 기반으로 색상을 구별합니다.

OpenCv는 기본적으로 BGR을 사용하는데, BGR과 RGB 색공간의 차이점은 컬러 채널에서 그림의 순서가 다르다는 것입니다.

2. 영상처리 소개

우선, 우리 마음속에 각인된 첫 번째 개념은 다음과 같습니다.

사진은 픽셀로 구성되어 있어요! ! !

위의 이미지는 그림의 구성을 완벽하게 보여줍니다. 

이미지는 일반적으로 세 가지 범주로 나뉩니다.

1.바이너리 이미지:

이진 이미지 표현의 의미는 각 픽셀이 0과 1로만 구성되어 있으며 0은 검정색을 나타내고 1은 흰색을 나타내며 여기서 검정색과 흰색은 순수한 검정색과 순수한 흰색을 의미합니다. 공식 홈페이지를 예로 들어보겠습니다.

2. 그레이스케일 이미지

회색조 이미지는 8비트 비트맵입니다. 그게 무슨 뜻이에요? 즉, 00000001부터 11111111까지가 이진 표현입니다. 일반적으로 사용되는 십진법으로 표현하면 0-255입니다. 그 중 0은 순흑색을 의미하고, 255는 순백색을 의미하며, 중간은 순흑색에서 순백색까지의 관련 색상이다. 계속해서 Lina를 예로 들어보겠습니다.
 

3. 컬러 이미지 

컴퓨터의 모든 색상은 R(빨간색 채널), G(녹색 채널), B(파란색 채널)로 구성될 수 있으며 각 색상은 0~255개의 픽셀 색상을 갖습니다. 예를 들어 R=234, G=252, B=4는 노란색을 나타냅니다. 노란색으로도 표시됩니다. 따라서 컬러 이미지는 각각 R, G, B에 해당하는 세 개의 면으로 구성됩니다. 리나를 예로 들어보겠습니다.

 

3. 색공간 변환

 코드는 아래와 같이 표시됩니다.

import cv2

def callback(value):
    pass


# 创建窗口
cv2.namedWindow('color',cv2.WINDOW_NORMAL)
cv2.resizeWindow('color',640,480)

# 读取图片,OpenCv默认读进来的图片为BGR的色彩空间
img = cv2.imread('6.jpg')

# 常见的颜色空间转换
colorspaces = [cv2.COLOR_BGR2RGBA,cv2.COLOR_BGR2BGRA,
               cv2.COLOR_BGR2GRAY,cv2.COLOR_BGR2HSV,
               cv2.COLOR_BGR2YUV]
# 创建trackbar
cv2.createTrackbar('trackbar','color',0,4,callback)

while True:
    index = cv2.getTrackbarPos('trackbar','color')

    # 颜色空间的转换API
    cvt_img = cv2.cvtColor(img,colorspaces[index])

    cv2.imshow('color',cvt_img)
    key = cv2.waitKey(10)
    if key == ord('q'):
        break

# 释放资源
cv2.destroyAllWindows()

실행 결과는 다음과 같습니다.

 

 

 

추천

출처blog.csdn.net/weixin_64443786/article/details/131723887