本章内容

重映射、x轴翻转,y轴翻转,xy轴镜像,图像缩小

输出结果:

源码

#include <ostream>
#include <opencv.hpp>
#include <math.h>

int main(int argc, char *argv[])
{
    /*
     本章内容:
        重映射Reamap
    */
    cv::String fileName = "/home/wang/dev/Image/biuld.jpeg";
    cv::String fileName1 = "/home/wang/dev/Image/pingpang.jpeg";
    cv::Mat src = cv::imread(fileName);
    cv::Mat src2 = cv::imread(fileName1);
    if(src.data == NULL){
        printf("图像读入失败\n");
        return -1;
    }
    /*重映射
     * api接口:CV_EXPORTS_W void remap( InputArray src, OutputArray dst,
                         InputArray map1, InputArray map2,
                         int interpolation, int borderMode = BORDER_CONSTANT,
                         const Scalar& borderValue = Scalar());

@param map1 x轴映射
        @param map2  y轴映射
        @param interpolation Interpolation method (see #InterpolationFlags).
        enum InterpolationFlags {
                INTER_NEAREST        = 0,
                INTER_LINEAR         = 1,
                INTER_CUBIC          = 2,
            }
    */
    cv::Mat mapX(src.rows,src.cols,CV_32FC1);
    cv::Mat mapY(src.rows,src.cols,CV_32FC1);
    cv::String winName = "";
    for(int i=0; i < src.rows;i++){
        for(int j=0; j <src.cols;j++){
            switch(0){
            case 0:
                winName="关于x轴翻转";
                mapX.at<float>(i,j) = src.cols - j; //关于x轴翻转
                mapY.at<float>(i,j) =i;
                break;
            case 1:  // 关于y轴翻转
                winName="关于y轴翻转";
                mapX.at<float>(i,j) = j;
                mapY.at<float>(i,j) =src.rows - i ;
                break;
            case 2: // 关于x,y翻转
                winName="关于x,y翻转";
                mapX.at<float>(i,j) = src.cols - j;
                mapY.at<float>(i,j) =src.rows - i ;
                break;
            case 3: // 缩小并平移
                winName="缩小并平移";
                mapX.at<float>(i,j) = j*2 - src.cols/4;
                mapY.at<float>(i,j) = i*2 - src.rows/4;
                break;
            }
        }

}
    cv::Mat dstX;
    cv::remap(src,dstX,mapX,mapY,cv::INTER_LINEAR);
    cv::imshow("src",src);
    cv::imshow(winName,dstX);

cv::waitKey(0);
    return 1;
}

opencv 重映射、x轴翻转,y轴翻转,xy轴镜像,图像缩小相关推荐

  1. 【OpenCV入门教程之十七】OpenCV重映射 SURF特征点检测合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/30974513 作者:毛星云(浅墨) ...

  2. html图片沿y轴转换,html-使用CSS水平翻转/垂直翻转/镜像图像

    我试图翻转图像以显示4种方式:原始(无变化),水平翻转,垂直翻转,水平+垂直翻转. 为了做到这一点,我在下面做,除了水平+垂直翻转之外,它还可以正常工作,你知道为什么它不起作用吗? 香港专业教育学院的 ...

  3. OpenCV之imgproc 模块. 图像处理(3)霍夫线变换 霍夫圆变换 Remapping 重映射 仿射变换

    霍夫线变换 目标 在这个部分您将学习到: 使用OpenCV的以下函数 HoughLines 和 HoughLinesP 来检测图像中的直线. 原理 Note 以下原理的说明来自书籍 学习OpenCV  ...

  4. 【OpenCV 】Remapping 重映射¶

    目录 1.1目标 1.2 理论 1.3 代码 1.4 运行结果 1.1目标 展示如何使用OpenCV函数 remap 来实现简单重映射. 1.2 理论 把一个图像中一个位置的像素放置到另一个图片指定位 ...

  5. [OpenCV] cv.remap() 重映射学习笔记/map1 map2易混点

    文章目录 一.背景 二.Notes (一)更新几个小例子方面理解remap 1. 利用remap 进行 copy 2.进行翻转 学习remap的时候发现map1和map2的参数跟我的直观理解略有差别, ...

  6. OpenCV:remap()简单重映射

    学习自:[OpenCV入门教程之十七]OpenCV重映射 重映射,就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程. 为了完成映射过程, 我们需要获得一些插值为非整数像素的坐标,因为源图像与 ...

  7. 边缘检测、霍夫变换、重映射、仿射变换、直方图均衡化

    文章目录 1.基于 OpenCV 的边缘检测 1.1 边缘检测的一般步骤 1.2 canny 算子 1.2.1 canny 边缘检测的步骤 1.2.2 Canny 边缘检测:Canny() 函数 1. ...

  8. OpenCV重新映射Remapping

    OpenCV重新映射Remapping 重新映射Remapping 目标 理论 什么是重新映射? 代码 这个程序做什么? 解释 结果 重新映射Remapping 目标 在本教程中,您将学习如何: 一种 ...

  9. 不同屏幕分辨率 坐标_干货 | 小议光固化3D打印XY轴分辨率精度

    当提到分辨率,我们可能立马想到电视.手机.平板电脑等电子产品.分辨率跟这些电子产品的清晰度息息相关.在3D打印行业,分辨率同样经常被提及,因为它对于3D成品质量也有着较大的影响.二维平面(XY方向)以 ...

最新文章

  1. 图神经网络如何对知识图谱建模? | 赠书
  2. 如何在自己开发的日程管理页面插入提醒功能_微信中6个藏得很深但却很有用的功能...
  3. MySQL中如何创建表与删除表
  4. Python学习笔记:web开发2
  5. Java面试技巧之MySQL问题梳理
  6. 曝光原理_泰国精戈咖啡效果反馈 作用原理曝光
  7. windows下xmllib2使用简介 64位
  8. 1:1 人脸比对 开源_打破5个神话:在高等教育中使用开源
  9. Fedora 8中完全开启compiz-fusion特效
  10. 机器学习深度学习知识点总结
  11. Java编写的日历,输入年月,输出这个月的日期与星期
  12. Java后台返回PDF文件预览下载
  13. 电力电子课设日志(已完结)
  14. 火狐浏览器——问题解决:网络正常但无法打开百度页面和搜索功能
  15. DirectX简单的FBX文件加载(网格MESH)
  16. 分布式事务解决方案FESCAR
  17. 【戴师兄数分】excel基础操作——函数专题(个人笔记)
  18. 本机电脑清除DNS缓存+浏览器清除DNS缓存
  19. 9.27 英语听力练习
  20. linux ddos防御攻击

热门文章

  1. 各大互联网公司PUA套路,同行必须懂!!!
  2. OA与BPM究竟有啥区别
  3. Java基础(六)——多线程的基本使用与原理
  4. FinTech头条丨祝贺国家电投全球司库管理系统成功上线!
  5. 美团java面经校招本科_美团java社招经历分享
  6. Mac使用技巧之Finder的个人收藏
  7. 个人中心修改用户头像
  8. currentThread方法
  9. SQL条件语句(and,or,is null)
  10. 七岁的OpenStack成熟了?企业就绪了?