旋转图像时如何填充边框?

Ped*_*dro 4 c++ opencv image-processing

我正在使用以下代码在opencv中旋转图像.但是,之后角落的颜色为黑色.我想当我设置borderModeBORDER_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); 
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下,我在这里做错了什么?

我知道我cv::floodFill之后可以使用,但不知何故应该可以只使用warpAffine.

Sam*_*Sam 5

你尝试过大于1的值吗?怀特应该是

Scalar(255,255,255);
Run Code Online (Sandbox Code Playgroud)

蓝色:

Scalar(255,0,0);
Run Code Online (Sandbox Code Playgroud)

等等.

OpenCV矩阵中的值表示为uchars(0..255),而不是(0.0..1.0)