gpt4 book ai didi

opencv - opencv中的颜色检测

转载 作者:太空宇宙 更新时间:2023-11-03 21:01:40 25 4
gpt4 key购买 nike

我想从实时视频流中检测特定颜色,比如蓝色。我编写了以下代码来显示实时视频流并将其更改为 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;
}

最佳答案

您可以分三步完成此操作:

  1. 负载框架。
  2. 将 BGR 转换为 HSV 颜色空间。
  3. Inrange在要检测的颜色范围之间。

编辑

您可以使用这个 code从源图像中查找任何像素的 HSV 值。你可以看到关于HSV颜色空间的很好的解释here ,从那里下载 HSV 色轮并手动找出 HSV 范围。

以下范围可用于 the comments 中提供的图像:

hsv_min--> (106,60,90)
hsv_max-->(124,255,255)

可以使用以下代码:

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);

这是输入:

enter image description here

这是输出:

enter image description here

关于opencv - opencv中的颜色检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19189482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com