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

how to fill borders when rotating images?

本文关键字:填充 边框 图像 旋转      更新时间:2023-10-16

我使用以下代码在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

您是否尝试了大于1的值?白色应该是

Scalar(255,255,255);
蓝色:

Scalar(255,0,0);

等等

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