2011-11-16 27 views
4

我使用下面的代碼在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); 

有人請解釋我,我在做什麼錯在這裏?

我知道我以後可以使用cv::floodFill,但不知何故應該可以只使用warpAffine

+0

是爲'Scalar'的α值的第四參數?如果是這樣,它應該是1.0或255,而不是0.0。 –

回答

5

你嘗試了一些大於1的值嗎?白應

Scalar(255,255,255); 

藍:

Scalar(255,0,0); 

等。

值在OpenCV中矩陣被表達爲uchars(0..255),而不是(0.0..1.0)