我正在使用以下代码在opencv中旋转图像。但是,之后角落的颜色为黑色。我想当我将borderMode
设置为BORDER_CONSTANT
时,我可以指定颜色。但无论我设置什么颜色(最后一个参数),结果总是黑色。
cv::Mat rotated;
float rotation = 3.0f;
cv::warpAffine(img,
rotated,
rotation,
img.size(),
cv::INTER_CUBIC,
cv::BORDER_CONSTANT,
cv::Scalar(1.0, 1.0, 1.0, 0.0));
cv::imshow("rotated", rotated);
有人可以解释一下,我在这里做错了什么?
我知道我之后可以使用cv::floodFill
,但不知何故应该可以只使用warpAffine
。
答案 0 :(得分:5)
您是否尝试过大于1的值?怀特应该是
Scalar(255,255,255);
蓝:
Scalar(255,0,0);
等等。
OpenCV矩阵中的值表示为uchars(0..255),而不是(0.0..1.0)