RGB HSV 影像處理 顏色 識別 / 辨別 / 判讀 / 辨識

RGB HSV 影像處理 顏色 識別 / 辨別 / 判讀 / 辨識

RGB HSV 影像處理 顏色 識別 / 辨別 / 判讀 / 辨識


資料來源:https://blog.csdn.net/Taily_Duan/article/details/51506776

https://zh.wikipedia.org/wiki/HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4


EX: OpenCV better detection of red color? [OPENCV HSV RED]

//https://stackoverflow.com/questions/32522989/opencv-better-detection-of-red-color

#include <opencv2\opencv.hpp>
using namespace cv;

int main()
{
    Mat3b bgr = imread("path_to_image");

    Mat3b hsv;
    cvtColor(bgr, hsv, COLOR_BGR2HSV);

    Mat1b mask1, mask2;
    inRange(hsv, Scalar(0, 70, 50), Scalar(10, 255, 255), mask1);
    inRange(hsv, Scalar(170, 70, 50), Scalar(180, 255, 255), mask2);

    Mat1b mask = mask1 | mask2;

    imshow("Mask", mask);
    waitKey();

    return 0;
}

EX:偵測綠色

# 可从视频中跟踪指定颜色,指定颜色置为白,其余置为黑
def extract_object_demo():
    capture=cv.VideoCapture("./images/vtest.avi")
    while(True):
        ret,frame=capture.read()
        if ret ==False:
            break
        hsv=cv.cvtColor(frame,cv.COLOR_BGR2HSV)
        lower_hsv = np.array([35, 43, 46])  # 对应的绿色的hsv中h,s,v的最小值
        upper_hsv = np.array([77, 255, 255])  #对应的绿色的hsv中的h,s,v最大值
        mask=cv.inRange(hsv,lowerb=lower_hsv,upperb=upper_hsv)
        cv.imshow("video",frame)
        cv.imshow("mask",mask)
        c=cv.waitKey(40)
        if c==27:
            break

展示的RGB值的範圍是0.0到1.0。

RGB HSL HSV 結果
(1, 0, 0) (0°, 1, 0.5) (0°, 1, 1)  
(0.5, 1, 0.5) (120°, 1, 0.75) (120°, 0.5, 1)  
(0, 0, 0.5) (240°, 1, 0.25) (240°, 1, 0.5)  

EX: OpenCV—HSV色彩空間基礎知識[cvtColor偵測-紅綠藍]

//https://blog.csdn.net/cyj972628089/article/details/106880398
import cv2
import numpy as np
#=========测试下OpenCV中蓝色的HSV模式值=============
imgBlue=np.zeros([1,1,3],dtype=np.uint8)
imgBlue[0,0,0]=255
Blue=imgBlue
BlueHSV=cv2.cvtColor(Blue,cv2.COLOR_BGR2HSV)
print("Blue=\n",Blue)
print("BlueHSV=\n",BlueHSV)
#=========测试下OpenCV中绿色的HSV模式值=============
imgGreen=np.zeros([1,1,3],dtype=np.uint8)
imgGreen[0,0,1]=255
Green=imgGreen
GreenHSV=cv2.cvtColor(Green,cv2.COLOR_BGR2HSV)
print("Green=\n",Green)
print("GreenHSV=\n",GreenHSV)
#=========测试下OpenCV中红色的HSV模式值=============
imgRed=np.zeros([1,1,3],dtype=np.uint8)
imgRed[0,0,2]=255
Red=imgRed
RedHSV=cv2.cvtColor(Red,cv2.COLOR_BGR2HSV)
print("Red=\n",Red)
print("RedHSV=\n",RedHSV)


展示的RGB值的範圍是0到255。

名稱 顏色 色光 色料 色相 代碼 MS-DOS
角度 飽和 明度
紅色 255 0 0 0 255 255 0 100% 100% #FF0000 12
黃色 255 255 0 0 0 255 0 60° 100% 100% #FFFF00 14
綠色 0 255 0 255 0 255 0 120° 100% 100% #00FF00 10
青色 0 255 255 255 0 0 0 180° 100% 100% #00FFFF 11
藍色 0 0 255 255 255 0 0 240° 100% 100% #0000FF 9
品紅色 255 0 255 0 255 0 0 300° 100% 100% #FF00FF 13
栗色 128 0 0 0 255 255 127 100% 50% #800000 4
橄欖色 128 128 0 0 0 255 127 60° 100% 50% #808000 6
深綠色 0 128 0 255 0 255 127 120° 100% 50% #008000 2
藍綠色 0 128 128 255 0 0 127 180° 100% 50% #008080 3
深藍色 0 0 128 255 255 0 127 240° 100% 50% #000080 1
紫色 128 0 128 0 255 0 127 300° 100% 50% #800080 5
白色 255 255 255 0 0 0 0 0% 100% #FFFFFF 15
銀色 192 192 192 0 0 0 63 0% 75% #C0C0C0 7
灰色 128 128 128 0 0 0 127 0% 50% #808080 8
黑色 0 0 0 0 0 0 255 0% 0% #000000 0

One thought on “RGB HSV 影像處理 顏色 識別 / 辨別 / 判讀 / 辨識

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *