opencv圖像顏色過濾
A. 如何使用Opencv對圖像進行顏色特徵提取
打開小畫家,將色卡打開,點擊吸管工具,移動滑鼠到紅色塊上方,松開滑鼠,此時,吸管工具已經提取了紅色色塊信息。然後點擊右方的「編輯顏色」,彈出顏色選擇對話框,此時,右下角有剛才習慣的紅綠藍顏色信息,如紅152,綠18,藍15。這個就是顏色對應的RGB色彩值。
創建VC控制台工程,加入所需頭文件和庫文件。注意要事先將opencv 頭文件和庫文件添加到工程屬性中,作者使用opencv2.4+VC2010示範。
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <stdio.h>
#include <vector>
#include <math.h>
#pragma comment (lib,"opencv_core244d.lib")
#pragma comment (lib,"opencv_highgui244d.lib")
#pragma comment (lib,"opencv_imgproc244d.lib")
定義一個顏色常量target,默認值即為剛才吸管工具提取的紅色色塊的RGB值分量,和一個計算與顏色標准值色差的函數,暫定為色差在10以內即為相近顏色。這里cv::Vec3b 變數對應一個數組值, Vec3b[0] 對應blue,Vec3b[1]對應green,Vec3b[2]對應Red,即BGR。
接著添加以下代碼,目的為讀取源圖片,根據圖片大小做一定的縮放,然後定義同樣大小的一個灰度圖,用於存貯計算結果值。核心演算法如下,遍歷源圖片,色差(與紅色色塊比較)低於30的即為需要提取的顏色值,將此像素位置記錄並寫入到灰度圖中,以黑色顯示,否則設置為白色。然後將處理前後圖片顯示出來。
實際商業應用中也是可以如法炮製的,比如下圖的葯片,大小,顏色不統一,如何提取識別黃色小葯片在何處或計算其數量呢。
筆者嘗試使用吸管工具提取其BGR值為(22,184,245),將色差由10調整為30,可以正確檢測此葯片。如圖。
B. 哪個高手跟我講一下在opencv中要怎麼提取一張彩色圖像中的紅色部分,然後把他們修改為黑色
分成BGR三個通道就是了,再把r通道大於某個值的改為0
C. 有沒有人知道如何用OpenCV實現對一個彩色圖像的個顏色塊分割出來並對每一顏色塊進行判斷顏色啊很急,希
彩色圖像比較麻煩,要分成三個通道,求柱狀圖
D. opencv有直接提取圖像色度.飽和度.亮度的函數嗎
【1】先調用cvCvtColor將圖像轉到HSV顏色空間,如:cvCvtColo(rgb,hsv,CV_BGR2HSV);然後調用cvSplit函數,就可以將H分量分離出來專,再來單獨訪屬問H分量,H對於的通道是0即可。
【2】HSV(Hue,Saturation,Value)是根據顏色的直觀特性由A.R.Smith在1978年創建的一種顏色空間,也稱六角錐體模型(HexconeModel)。這個模型中顏色的參數分別是:色調(H),飽和度(S),亮度(V)。
E. Opencv數字圖像處理顏色識別問題
你的來這個問題要分兩步去做,首先源是定位,找到你的這個正方形,然後去顏色匹配。所以涉及了兩部分代碼。掃描一個矩形區域,你的這幀圖像里是不是就這么一個矩形區域,還是有別的矩形區域?黃色紅色會不會在其他地方也有,這些還沒交代清楚。
F. 如何在opencv中實現特定顏色的識別和選取
就是跟PhotoShop里魔術棒差不多?那你首先得確定:
用什麼顏色空間:RGB?HSV?YUV?
如何取特徵呢:像素值?直方圖?
用什麼分類器:SVM? 神經網路?
G. 如何用Opencv 把視頻提取的圖像中特定區域的顏色讀取出來求范常式序
for(i=0;i<Img->height;i++)
for(j=0;j<Img->width;j++)
{
color[i][j][0]=(Img->imageData+i*Img->widthStep)[3*j];
color[i][j][1]=(Img->imageData+i*Img->widthStep)[3*j+1];
color[i][j][2]=(Img->imageData+i*Img->widthStep)[3*j+2];
}
其中:img為要提取的圖像(RGB圖像,若為灰度圖像或者二值圖更簡單);版
color數組用於存放顏色的RGB值;權
H. Opencv 捕獲攝像頭的顏色異常!藍色是正常顏色,橘紅色是捕獲攝像頭數據後顯示到界面上的顏色。 QT
你好,請注意一下一般圖像都是RGB排列的,OPENCV一般情況下是BGR排列,所以如果不調換順序,藍色會顯示成紅色。
I. opencv 顏色識別,識別水體黃色、綠色,怎麼弄,希望詳細講解下軟硬體設計,因為我對這些不熟悉
你轉成別的顏色空間,比如LAB,可能好弄寫
J. opencv進行顏色識別
圖片還是視頻?
圖片的話讀到一個Mat里:
Mat img;
img.imread(address,1);
,訪問mat的元素就行了:
cout<<img.ptr<uchar>(i,j);
會輸出BGR值