我正在调用OpenCV cv::remap
函数,为x和y轴提供两个地图map_x
和map_y
。这些地图在空白处设置为-1(我正在旋转图像,我想用现有图像的镜像/反射填充一些空白区域)。
我正在调用这样的函数
cv::remap(src_image, remaped_image, map_x, map_y, INTER_LINEAR, BORDER_REFLECT);
但这导致图像具有恒定的边框。我做错了什么?
答案 0 :(得分:1)
cv::remap
以另一种方式使用闪烁空间。如果为空白区域设置地图为-1
,则使用外推值(-1,-1)源像素推断此点。因此,您有空格填充恒定值。如果你想用镜像值填充这个像素,你需要为cv::remap
提供适当的坐标,即使它不在边界。
cv::warpAffine
+ cv::getRotationMatrix2D
进行图像轮换?好的教程是here。 cv::warpAffine
在内部使用正确的地图调用cv::remap
。