BBB*_*BBB 3 opencv colors detection
我想从实时视频流中检测特定颜色,例如蓝色.我编写了以下代码,显示实时视频流并将其更改为HSV和灰度.由于我是opencv的新手,我不知道下一步该做什么.
有人可以为我完成代码以检测特定颜色.
#include<opencv\cv.h>
#include<opencv\highgui.h>
using namespace cv;
int main(){
Mat image;
Mat gray;
Mat hsv;
VideoCapture cap;
cap.open(0);
namedWindow("window", CV_WINDOW_AUTOSIZE);
namedWindow("gray", CV_WINDOW_AUTOSIZE);
namedWindow("hsv", CV_WINDOW_AUTOSIZE);
while (1){
cap >> image;
cvtColor(image, gray, CV_BGR2GRAY);
cvtColor(image, hsv, CV_BGR2HSV);
imshow("window", image);
imshow("gray", gray);
imshow("hsv", hsv);
waitKey(33);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Har*_*ris 10
您可以通过三个步骤完成此操作:
编辑
您可以使用此代码查找源图像中任何像素的HSV值.你可以在这里看到关于HSV色彩空间的一个很好的解释,从那里下载HSV色轮并手动找出HSV范围.
以下范围可用于注释中提供的图像:
hsv_min--> (106,60,90)
hsv_max-->(124,255,255)
Run Code Online (Sandbox Code Playgroud)
可以使用以下代码:
Mat src=imread("image.jpg");
Mat HSV;
Mat threshold;
cvtColor(src,HSV,CV_BGR2HSV);
inRange(HSV,Scalar(106,60,90),Scalar(124,255,255),threshold);
imshow("thr",threshold);
Run Code Online (Sandbox Code Playgroud)
这是输出:
