1. 程式人生 > >各類顏色的識別—OpenCV

各類顏色的識別—OpenCV

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int minh,maxh,mins,maxs,minv,maxv;
void helptext()
{
    cout << "B——黑色\n";
    cout << "H——灰色\n";
    cout << "W——白色\n";
    cout << "R——紅色\n";
    cout << "O——橙色\n";
    cout << "Y——黃色\n";
    cout << "G——綠色\n";
    cout << "L——藍色\n";
    cout << "P——紫色\n";
    cout << "輸入要求識別的顏色對應的字母:" ;
}

//各種顏色HSV數值設定
void deal(char color)
{
        switch(color){
    case 'B':
        minh = 0;
        maxh = 180;
        mins = 0;
        maxs = 255;
        minv = 0;
        maxv = 46;
        break;
    case 'H':
        minh = 0;
        maxh = 180;
        mins = 0;
        maxs = 43;
        minv = 46;
        maxv = 220;
        break;
    case 'W':
        minh = 0;
        maxh = 180;
        mins = 0;
        maxs = 30;
        minv = 221;
        maxv = 255;
        break;
    case 'R':
        minh = 0;
        maxh = 10;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case 'O':
        minh = 11;
        maxh = 25;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case 'Y':
        minh = 26;
        maxh = 25;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case 'G':
        minh = 35;
        maxh = 77;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case 'L':
        minh = 100;
        maxh = 124;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    case 'P':
        minh = 125;
        maxh = 155;
        mins = 43;
        maxs = 255;
        minv = 46;
        maxv = 255;
        break;
    default:
        cout << "輸入錯誤" << endl;
        exit(0);
    }
}

int main(   )
{
    VideoCapture cap(1); //呼叫攝像頭,0為計算機攝像頭,1為外接USB攝像頭
	             
    Mat special;
	  
    helptext();

    char color;
    cin >> color;
    deal(color);


    while(true){
        	
	Mat frame;              //儲存每一幀的影象

        cap >> frame;        //讀取當前幀

        Mat fhsv;
        
		cvtColor(frame,fhsv,COLOR_BGR2HSV);   //將影象轉換為HSV模型
        
        inRange(fhsv,Scalar(minh,mins,minv),Scalar(maxh,maxs,maxv),special);          //找尋在要求區間內的顏色
           
		imshow("[pic]",special);
		 
        imshow("Original", frame); //show the original image    
    
		if(waitKey(30) >= 0)
			break;
    }
	
    return 0;
}

執行結果:

-----------------------------------------------------------


-----------------------------------------------------------


相關推薦

各類顏色識別OpenCV

#include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <

opencv】目標識別——HSV顏色識別

首先解釋為什麼不在RGB中設定範圍尋找物體資訊,而是在HSV中: 因為RGB通道並不能很好地反映出物體具體的顏色資訊 , 而相對於RGB空間,HSV空間能夠非常直觀的表達色彩的明暗,色調,以及鮮豔程度,方便進行顏色之間的對比,比如紅色在HSV空間中H維度的範圍為0~10和160~180 你跟我說

各類顏色識別對應的範圍

#include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream&g

OpenCV顏色識別

彩色模型 數字影象處理中常用的採用模型是RGB(紅,綠,藍)模型和HSV(色調,飽和度,亮度),RGB廣泛應用於彩色監視器和彩色視訊攝像機,我們平時的圖片一般都是RGB模型。而HSV模型更符合人描述和解釋顏色的方式,HSV的彩色描述對人來說是自然且非常直觀的。 H

基於Opencv顏色識別

彩色模型      數字影象處理中常用的採用模型是RGB(紅,綠,藍)模型和HSV(色調,飽和度,亮度),RGB廣泛應用於彩色監視器和彩色視訊攝像機,我們平時的圖片一般都是RGB模型。而HSV模型更符合人描述和解釋顏色的方式,HSV的彩色描述對人來說是自然且非常直觀的。

OpenCV】HSV顏色識別-HSV基本顏色分量範圍

一般對顏色空間的影象進行有效處理都是在HSV空間進行的,然後對於基本色中對應的HSV分量需要給定一個嚴格的範圍,下面是通過實驗計算的模糊範圍(準確的範圍在網上都沒有給出)。 H:  0 — 180 S:  0 — 255 V:  0 — 255 此處把部分紅色

新手想用opencv python做顏色識別,然後通過樹莓派將訊號輸出到微控制器中

本人新手一枚,老師給了個任務,讓我通過opencv識別出紅,藍綠,白,黑,5種顏色,之前是用的VS2010和opencv做的,但發現不僅配置麻煩,可能我比較菜,效果做的不好 ,就跑到Python裡做了這。希望有類似的目的的人可以一起學習下, #!/usr/bin/pyth

25 行 Python 代碼實現人臉識別——OpenCV 技術教程

col print 連續 等等 cas 處理 get 命令行參數 性能 OpenCV OpenCV 是最流行的計算機視覺庫,原本用 C 和 C++ 開發,現在也支持 Python。 它使用機器學習算法在圖像中搜索人的面部。對於人臉這麽復雜的東西,並沒有一個簡單的檢測能對是否

Python 人臉識別 OpenCV (haarcascades)

Python 人臉識別 OpenCV haarcascades ■環境Python 3.6.0Pycharm 2017.1.3 ■庫、庫的版本OpenCV 3.4.1 (cp36) ■haarcascades下載https://github.com/opencv/opencv/tree/mas

使用yolo v3+alexnet做上衣顏色識別專案總結

上衣顏色識別專案總結 流程: 先用yolo v3的Keras版本訓練coco資料集的模型做行人檢測,過濾掉非行人以及超大框,得到行人的位置 使用alexnet進行顏色分類,一共12類,資料集是之前標定好的資料集,格式是pascal voc的格式,大概3萬張資料集。按照tr

【Openmv】多顏色識別常用初始化

# 多顏色跟蹤示例 # # 這個例子顯示了使用OpenMV的多色跟蹤。 import sensor, image, time # 顏色跟蹤閾值(L Min, L Max, A Min, A Max, B Min, B Max) # 下面的閾值跟蹤一般紅色/綠色的東西。你不妨調整他們...

人臉識別 opencv和python

opencv人臉識別–opencv和python MultiScale 目錄: 一、 Haar特徵分類器介紹 二、detectMultiScale函式 三、python OpenCV 解決人臉識別報錯 四、識別框的形狀 五、程式碼 首先、

人臉與人眼識別 opencv自帶例子

所做的工作就是新建了一個VS2010工程,win32控制檯應用程式,空工程。 只新建了一個cpp檔案 拷貝以下程式碼(百度來的,感謝網友。。。) // face_detect.cpp : 定義控制檯應用程式的入口點。 // //#include "stdafx.h"

微調CaffeNet用於車顏色識別

說明:主要思想是微調使用ImageNet預訓練的CaffeNet模型引數,用來對車顏色進行識別。為了不和其他檔案混亂,我們在examples下新建資料夾finetune_myself。 1.計算影象均值 caffenet需要影象均值檔案,所以先計算均值檔案。在finetu

程式練習3:MLP方法的物體顏色識別例程

************MLP方法的物體顏色識別 dev_close_window () read_image (Image, 'F:/7.機器視覺/Halcon/halcon學習/顏色識別專題/糖豆4

影象識別opencv-第一個程式(1)

==============開新坑====撒花撒花=========== 聽說opencv結合AR可以玩的很6,於是新坑就開了。 沒有什麼理由,只是熱愛技術。 ================吐槽完畢======== 關於搭建環境什麼的就不說了 ,直接上程式,順便提醒下,

人臉識別(OpenCV+Python)

前言 關於opencv OpenCV是Intel開源計算機視覺庫(ComputerVersion)。它由一系列C函式和少量 C++類構成,實現了影象處理和計算機視覺方面的很多通用演算法。 OpenCV 擁有包括 300 多個C函式的跨平臺的中、高層 API。它不依

50行Python程式碼實現視訊中物體顏色識別和跟蹤(必須以紅色為例)

目前計算機視覺(CV)與自然語言處理(NLP)及語音識別並列為人工智慧三大熱點方向,而計算機視覺中的物件檢測(objectdetection)應用非常廣泛,比如自動駕駛、視訊監控、工業質檢、醫療診斷等場景。 目標檢測的根本任務就是將圖片或者視訊中感興趣的目標提取出來,目標的識別可以基於顏色、紋理、形狀。其

基於OpenCV的車牌識別(Sobel、顏色定位)

車牌識別大體上需要經歷過Sobel定位、顏色定位、SVM對定位來的候選車牌進行評測,給出評分,最後通過提取HOG特徵按照訓練模型進入ANN識別。 這一章節介紹 定位相關的邏輯程式碼,其中定位用到 Sobel定位(邊緣檢測定位), 顏色定位:對應程式碼裡的CarSobelPlateLocation,CarCo

opencv】在hsv顏色空間識別區域顏色

大綱 1. hsv顏色空間簡介 2. 為什麼是HSV 3. 識別方法說明 4. 識別步驟解析(程式碼片段) 4. 檢測結果 一、HSV顏色空間         由色調(Hue)、飽和度(Saturation)、亮度(Value)三個分量構成,HSV更接近於人眼的主觀感