cv::Mat dsc(img_rgb.size(), CV_8U, cv::Scalar(0));
//分离
cv::Mat hsv1(img_rgb.size(), CV_8U, cv::Scalar(0));
cv::Mat tmpH1(img_rgb.size(), CV_8U, cv::Scalar(0));
cv::Mat tmpH4(img_rgb.size(), CV_8U, cv::Scalar(0));
cv::Mat tmpH2(img_rgb.size(), CV_8U, cv::Scalar(0));
cvtColor(img_rgb, hsv1, CV_BGR2HSV); //颜色转换
vector<cv::Mat> mv;
split(hsv1, mv); //分为3个通道
inRange(mv[0], Scalar(10, 0.0, 0, 0), Scalar(100, 0.0, 0, 0), tmpH1);
inRange(mv[1], Scalar(20.0, 0.0, 0, 0), Scalar(110, 0.0, 0, 0), tmpH2);
inRange(mv[2], Scalar(30, 0.0, 0, 0), Scalar(120.0, 0.0, 0, 0), tmpH3);
bitwise_and(tmpH3, tmpH2, tmpH2);
dsc = tmpH1.clone();
blur(dsc, dsc, Size(3, 3));
imshow("dsc", dsc);
Mat srcImg;
Mat imgB, imgG, imgR;
Mat mergeImg;
vector<cv::Mat> channels; //Mat向量容器保存拆分后的数据
//判断文件加载是否正确
assert(srcImg.data != NULL);
//通道的拆分
split(srcImg, channels);
imgB = channels.at(0);
imgG = channels.at(1);
imgR = channels.at(2);
imshow("image", imgB);
//对拆分的通道数据合并
merge(channels, mergeImg);
//分离
cv::Mat hsv1(img_rgb.size(), CV_8U, cv::Scalar(0));
cv::Mat tmpH1(img_rgb.size(), CV_8U, cv::Scalar(0));
cv::Mat tmpH4(img_rgb.size(), CV_8U, cv::Scalar(0));
cv::Mat tmpH2(img_rgb.size(), CV_8U, cv::Scalar(0));
cv::Mat tmpH3(img_rgb.size(), CV_8U, cv::Scalar(0));
cvtColor(img_rgb, hsv1, CV_BGR2HSV); //颜色转换
vector<cv::Mat> mv;
split(hsv1, mv); //分为3个通道
inRange(mv[0], Scalar(10, 0.0, 0, 0), Scalar(100, 0.0, 0, 0), tmpH1);
inRange(mv[1], Scalar(20.0, 0.0, 0, 0), Scalar(110, 0.0, 0, 0), tmpH2);
inRange(mv[2], Scalar(30, 0.0, 0, 0), Scalar(120.0, 0.0, 0, 0), tmpH3);
bitwise_and(tmpH3, tmpH2, tmpH2);
bitwise_and(tmpH1, tmpH2, tmpH1);
dsc = tmpH1.clone();
blur(dsc, dsc, Size(3, 3));
imshow("dsc", dsc);
Mat srcImg;
Mat imgB, imgG, imgR;
Mat mergeImg;
vector<cv::Mat> channels; //Mat向量容器保存拆分后的数据
//判断文件加载是否正确
assert(srcImg.data != NULL);
//通道的拆分
split(srcImg, channels);
imgB = channels.at(0);
imgG = channels.at(1);
imgR = channels.at(2);
imshow("image", imgB);
//对拆分的通道数据合并
merge(channels, mergeImg);