温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

OpenCV关于万达平台搭建重映射map_x,map_y的疑惑

发布时间:2020-06-23 05:02:08 来源:网络 阅读:1067 作者:wyuwu 栏目:大数据

OpenCV中什么万达平台搭建论坛:haozbbs.com Q1446595067 是重映射就不赘述了,主要是对源码中map_x,map_y有些疑惑,图像是如何进行重映射的呢?

上下变换的部分源码:

        Mat map_x, map_y;
    map_x.create(srcimg.size(), CV_32FC1);
    map_y.create(srcimg.size(), CV_32FC1);
    for (int i=0;i<srcimg.rows;i++)
    {
        for (int j=0;j<srcimg.cols;j++)
        {
            map_x.at<float>(i, j) = static_cast<float>(j);
            map_y.at<float>(i, j) = static_cast<float>(srcimg.rows- i);
        }
    }

开始看老半天不理解重映射原理,后来把map_x,map_y内的值输入后,大概知道了。

假设对一张10*10的图片进行上下重映射,

根据 map_x.at<float>(i, j) = static_cast<float>(j); map_x作用是记录列坐标,

根据 map_y.at<float>(i, j) = static_cast<float>(srcimg.rows- i); map_y作用是记录行坐标。

输出map_x,map_y:

map_x:

map_y:

我们可以看到,在x方向从左到右逐渐增大排列,在y方向上到下减小排列,

将map_y,map_x组合,以坐标形式输出,则结果为

而原图的坐标为:

对比发现,原图坐标和map_y,map_x组合坐标发生了上下翻转。

然后根据坐标,把原图坐标对应的像素点一一映射到转换图上,就是上下翻转变换后的图像,这也是图片重映射的原理

其他的变换应该同理。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI