내가 채우기 cv::Mat
거기에 좋은 cv::Mat::setTo
방법이다하지만 난 코드의 그 조각과 같은 효과가없는 이유를 이해하지 못하는 것을 알고을 채우기 위해 다른 방법 :OpenCV의 : 이력서 :: 매트
// build the mat
m = cv::Mat::zeros(size, CV_8UC3);
cv::cvtColor(m, m, CV_BGR2BGRA); // add alpha channel
/////////////////////////////////////////////////////////// this works
m.setTo(cv::Scalar(0,144,0,55));
m = cv::Mat::zeros(size, CV_8UC3);
cv::cvtColor(m, m, CV_BGR2BGRA);
/////////////////////////////////////////////////////////// this does NOT work
m = m + cv::Scalar(0,144,0,55)
m = cv::Mat::ones(size, CV_8UC3);
cv::cvtColor(m, m, CV_BGR2BGRA);
/////////////////////////////////////////////////////////// this does NOT work
m = m.mul(cv::Scalar(0,144,0,55));
m = cv::Mat::zeros(size, CV_8UC3);
cv::cvtColor(m, m, CV_BGR2BGRA);
/////////////////////////////////////////////////////////// this works too!
cv::rectangle(tracks,
cv::Rect(0, 0, tracks.cols, tracks.rows),
cv::Scalar(0,144,0,55),
-1);
PS : 나는 추측
위대한, 그것은 완전히 대답! 문서에서 그러한 행동이 있습니까? – nkint
명백하게, 적어도 나는 그것에 관해 아무것도 찾을 수 없다. 알파 채널의 경우 255로 지정하면 (불투명) 색상 공간 변환으로 이미지 모양이 변경되지 않습니다. – littleimp