在做全景拼接的时候,为了保持图片中的空间约束与视觉的一致性,需要进行柱面投影,否则离中心图像距离越远的图像拼接后变形越大。
柱面投影公式为
这个是https://blog.youkuaiyun.com/zouxin_88/article/details/85167602的代码,rgb彩色的
int main()
{
cv::Mat image1 = cv::imread("images/1.jpg", 1);
if (!image1.data)
return 0;
imshow("image1", image1);
Mat imgOut = Mat(image1.rows, image1.cols, CV_8UC3);
float w = image1.cols;
float h = image1.rows;
float f = (w / 2) / atan(PI / 8);
for (int i = 0; i < image1.rows; i++)
{
for (int j = 0; j < image1.cols; j++)
{
float x = j;
float y = i;
float x1 = f * atan((x - w / 2