C++ OpenCV 基于HSV颜色分割区域、获取目标

C++ OpenCV 基于HSV颜色分割区域、获取目标

读取图片

// An highlighted block
Mat img = imread("E:/Data_image/螺丝-线1/wire.bmp", 3);

在这里插入图片描述

hsv 颜色范围

在这里插入图片描述

	//黑
	Scalar black_scalarL = Scalar(0, 0, 0);
	Scalar black_scalarH = Scalar(180, 255, 60);
	//黄
	Scalar yellow_scalarL = Scalar(11, 43, 46);
	Scalar yellow_scalarH = Scalar(34, 255, 255);

	//红
	Scalar red_scalarL_1 = Scalar(0, 43, 46);
	Scalar red_scalarH_1 = Scalar(8, 255, 255);
	//蓝
	Scalar blue_scalarL = Scalar(100, 150, 46);
	Scalar blue_scalarH = Scalar(124, 255, 255);

通过inrange函数找到对应颜色范围的mask区域

	//黑
	inRange(imghsv, black_scalarL, black_scalarH, black_mask);
	//红
	inRange(imghsv, red_scalarL_1, red_scalarH_1, red_mask);
	//蓝
	inRange(imghsv, blue_scalarL, blue_scalarH, blue_mask);
	//黄  
	inRange(imghsv, yellow_scalarL, yellow_scalarH, yellow_mask);

红
蓝
黑
黄

最后显示出来

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41648925/article/details/124859769