如何用OpenCV同时检测一幅图中的蓝色和绿色区域?

qq_31064721 2016-07-01 08:44:18
如何用OpenCV同时检测一幅图中的蓝色和绿色区域?检测完成后将蓝色和绿色区域的二值图像输出!要同时检测并输出二值图像,不是要分开的单一检测一种颜色。
int main()
{
Mat g_srcImage = imread("3.bmp");
Mat g_dst1;
Mat g_dst2;
Mat g_dst;
Mat hsv = Mat::zeros(g_srcImage.cols,g_srcImage.rows,CV_8UC3);
// 高斯模糊
GaussianBlur(g_srcImage,g_srcImage,Size(3,3),0,0);
// 转换为HSV,hue色度,saturation饱和度,value纯度
cvtColor(g_srcImage, hsv, CV_BGR2HSV );
//通过HSV范围定量进行颜色的检测
inRange(hsv,Scalar(33,43,46),Scalar(77,255,255),g_dst1);
inRange(hsv,Scalar(100,43,46),Scalar(124,255,255),g_dst2);
//Mat mask=inRange(hsv,lower_yellow,upper_yellow);
namedWindow("1",WINDOW_NORMAL);
namedWindow("2",WINDOW_NORMAL);
namedWindow("3",WINDOW_NORMAL);
namedWindow("4",WINDOW_NORMAL);
imshow("1",g_srcImage);
imshow("2",g_dst1);
imshow("3",g_dst2);
waitKey();
return 0;
}
单一颜色检测我知道怎么做,如何同时检测出两种颜色并将他们的二值图像输出到一张图中呢?
...全文
1387 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
浮士灬德 2017-11-26
  • 打赏
  • 举报
回复
可以发下检测单一颜色通道的代码吗
1213roeecsdn 2017-08-15
  • 打赏
  • 举报
回复
/*********************肤色检测部分**************/ #if 0 cvInRangeS(H, cvScalar(0.0, 0.0, 0, 0), cvScalar(20.0, 0.0, 0, 0), tmpH1); cvInRangeS(S, cvScalar(75.0, 0.0, 0, 0), cvScalar(200.0, 0.0, 0, 0), tmpS1); cvAnd(tmpH1, tmpS1, tmpH1, 0); // Red Hue with Low Saturation // Hue 0 to 26 degree and Sat 20 to 90 cvInRangeS(H, cvScalar(0.0, 0.0, 0, 0), cvScalar(13.0, 0.0, 0, 0), tmpH2); cvInRangeS(S, cvScalar(20.0, 0.0, 0, 0), cvScalar(90.0, 0.0, 0, 0), tmpS2); cvAnd(tmpH2, tmpS2, tmpH2, 0); // Red Hue to Pink with Low Saturation // Hue 340 to 360 degree and Sat 15 to 90 cvInRangeS(H, cvScalar(170.0, 0.0, 0, 0), cvScalar(180.0, 0.0, 0, 0), tmpH3); cvInRangeS(S, cvScalar(15.0, 0.0, 0, 0), cvScalar(90., 0.0, 0, 0), tmpS3); cvAnd(tmpH3, tmpS3, tmpH3, 0); #endif // Combine the Hue and Sat detections cvOr(tmpH3, tmpH2, tmpH2, 0); cvOr(tmpH1, tmpH2, tmpH1, 0); cvCopy(tmpH1, dst);
赵4老师 2016-07-04
  • 打赏
  • 举报
回复
可以考虑先将RGB转为HSL,蓝色和绿色只不过是H(Hue)的一个范围而已。
qq_31064721 2016-07-02
  • 打赏
  • 举报
回复
就是已经将图片中的蓝色区域输出成了二值图像,然后绿色区域也输出成了二值图像,分别保存在不同的Mat变量中
ID870177103 2016-07-01
  • 打赏
  • 举报
回复
什么叫蓝色和绿色区域的二值图像

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧