2013-06-25 1 views
1

Я хотел бы повернуть изображение в OpenCV (сейчас я делаю это так image manipulation SO answer), но хотел бы указать цвет, используемый для заполнения пробелов, созданных вращением - по умолчанию он черный (см. Ниже)Как изображение можно поворачивать с помощью OpenCV с пользовательским цветом для зазоров по краю?

enter image description here

Как это можно сделать?

ответ

2

Я думаю, что ответ лежит в official doc:

C: void cvWarpAffine(const CvArr* src, CvArr* dst, const CvMat* map_matrix, int flags=CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS, CvScalar fillval=cvScalarAll(0)) 

где

CvScalar fillval=cvScalarAll(0) определяет цвет заливки "пробел".

Просто укажите fillval с цветным скаляром при вызове этой функции.

+0

Почему вы ссылаетесь на устаревший API C, а не на C++? – jnovacho

+1

Работал как шарм, спасибо! Как отметил @jnovacho, вы используете старый API-интерфейс C, но тот же аргумент все еще существует в cv2: 'void warpAffine (InputArray src, OutputArray dst, InputArray M, Size dsize, int flags = INTER_LINEAR, int borderMode = BORDER_CONSTANT, const Scalar & borderValue = Scalar() ' – James

+0

@jnovacho Я думаю, что вы правы. – SolessChong