我想在图像和蒙版之间进行矩阵乘法。我希望HSV值乘以0.3。我认为,问题出在CV_32FC3
和CV_8UC3
之间,但是当我转换时,仍然无法正常工作。
我能怎么做?这是我目前的代码:
Mat mask = Mat(frame.size(), CV_32FC3, cv::Scalar(1, 1, 1));
cv::fillConvexPoly(mask, pts, 3, cv::Scalar(1,1,0.3));
cvtColor(frame, frame, CV_BGR2HSV);
frame.convertTo(frame, CV_32FC3);
cv::multiply(frame,mask,frame);
frame.convertTo(frame, CV_8UC3);
cvtColor(frame, frame, CV_HSV2BGR);
如果我只做这个,看看面具是好的 - 白色和黑色的变化:
Mat mask = Mat(frame.size(), CV_32FC3, cv::Scalar(1, 1, 1));
cv::fillConvexPoly(mask, pts, 3, cv::Scalar(0,0,0));
imshow("mask", mask);