Как заполнить границы при повороте изображения? - PullRequest
4 голосов
/ 17 ноября 2011

Я использую следующий код для поворота изображений в 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 Ответ

5 голосов
/ 17 ноября 2011

Вы пробовали некоторые значения больше 1? Белое должно быть

Scalar(255,255,255);

Синий:

Scalar(255,0,0);

и т. Д.

Значения в матрицах OpenCV выражаются в виде учар (0..255), а не (0.0..1.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...