我可以将黑色改为其他颜色吗?
我被区域使用这段代码:
void MainWindow::division_image_level1()
{
ROI_Vertices1.clear();
ROI_Vertices1.push_back(Point(196,40));
ROI_Vertices1.push_back(Point(47,450));
ROI_Vertices1.push_back(Point(204,450));
ROI_Vertices1.push_back(Point(275,40));
Mat mask1(m_WebcamRead.size(), CV_8UC1, Scalar::all(0));
approxPolyDP(ROI_Vertices1, ROI_Poly1, 1.0, true);
fillConvexPoly(mask1, &ROI_Poly1[0], ROI_Poly1.size(), 255, 8, 0);
Mat cut_image1(ROI_Poly1.size(), ROI_Poly1.size(), CV_8UC4);
m_WebcamRead.copyTo(cut_image1, mask1);
namedWindow("cnt_line_1");
imshow("cnt_line_1",cut_image1);
cnt_line_1 = detect_line(cut_image1);
std::cout <<"cnt_line_1 : "<<cnt_line_1 <<std::endl;
}
我会称这个区域是“我的区域”。和其他领域是背景区&#39;
int MainWindow::detect_line(Mat detected_image)
{
Mat HSV;
cvtColor(detected_image, HSV, CV_BGR2HSV);
cv::Scalar hsv_user_low(0, 0, 0);
cv::Scalar hsv_user_high(150, 150, 150);
inRange(HSV,hsv_user_low,hsv_user_high,HSV);
int cnt_line=0;
cnt_line= countNonZero(HSV);
return cnt_line;
}
当黑色进入&#39;我的区域时,我希望得到一个信号。
但detect_line
功能始终实现&#39;背景区域&#39;颜色是黑色。
我希望detect_line
函数知道这两者之间的区别。
我该怎么办? (我如何更改&#39;背景区域&#39;颜色黑色为白色?)