opencv3实现多种重映射
来源:互联网 发布:数据接口开发 编辑:程序博客网 时间:2024/04/30 12:33
#include<opencv2/opencv.hpp>#include<iostream>#include<vector>using namespace cv;using namespace std;int main(){Mat srcImage = imread("tiger.jpg", 1);imshow("【原图】", srcImage);Mat grayImage;cvtColor(srcImage, grayImage, CV_BGR2GRAY);Mat XImage, YImage;Mat dstImage;dstImage.create(srcImage.size(), srcImage.type());XImage.create(srcImage.size(), CV_32FC1);YImage.create(srcImage.size(), CV_32FC1);char key;int _flag = 0;while (1){for (int i = 0; i < srcImage.rows; i++){for (int j = 0; j < srcImage.cols; j++){//映射关系 (x, y) <-> (cols - x, y);if (_flag == 1){//这里是将原图中 ((srcImage.cols - j), i)的坐标值给目标图像的 (i, j)处//经过remap 函数后便将原图中 ((srcImage.cols - j), i)的灰度值给目标图像的 (i, j)处的灰度值XImage.at<float>(i, j) = static_cast<float>(srcImage.cols - j);YImage.at<float>(i, j) = static_cast<float>(i);}//映射关系 (x, y) <-> (x, rows - y);else if (_flag == 2){//这里是将原图中 (j, (srcImage.rows - i))的坐标值给目标图像的 (i, j)处//经过remap 函数后便将原图中 (j, (srcImage.rows - i))的灰度值给目标图像的 (i, j)处的灰度值XImage.at<float>(i, j) = static_cast<float>(j);YImage.at<float>(i, j) = static_cast<float>(srcImage.rows - i);}//映射关系 (x, y) <-> (cols - x, rows - y);else if (_flag == 3){//这里是将原图中 ((srcImage.cols - j), (srcImage.rows - i))的坐标值给目标图像的 (i, j)处//经过remap 函数后便将原图中 ((srcImage.cols - j), (srcImage.rows - i))的灰度值给目标图像的 (i, j)处的灰度值XImage.at<float>(i, j) = static_cast<float>(srcImage.cols - j);YImage.at<float>(i, j) = static_cast<float>(srcImage.rows - i);}//映射关系 将原图缩放else if (_flag == 4){/*这里是将原图中 ((2 * (j - srcImage.cols*0.25) + 0.5), (2 * (i - srcImage.rows*0.25) + 0.5))的坐标值给目标图像的 (i, j)处*//*经过remap 函数后便将原图中 ((2 * (j - srcImage.cols*0.25) + 0.5), (2 * (i - srcImage.rows*0.25) + 0.5))的灰度值给目标图像的 (i, j)处的灰度值*/if (j > srcImage.cols*0.25 && j < srcImage.cols*0.75 && i > srcImage.rows*0.25 && i < srcImage.rows*0.75){XImage.at<float>(i, j) = static_cast<float>(2 * (j - srcImage.cols*0.25) + 0.5);YImage.at<float>(i, j) = static_cast<float>(2 * (i - srcImage.rows*0.25) + 0.5);}else{XImage.at<float>(i, j) = 0;YImage.at<float>(i, j) = 0;}}else{XImage.at<float>(i, j) = static_cast<float>(j);YImage.at<float>(i, j) = static_cast<float>(i);}}}//进行重映射remap(srcImage, dstImage, XImage, YImage, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));imshow("【重映射后】", dstImage);key = waitKey(1);if (key == 27)break;if (key == '1')_flag = 1;if (key == '2')_flag = 2;if (key == '3')_flag = 3;if (key == '4')_flag = 4;}return 0;}
0 0
- opencv3实现多种重映射
- opencv3实现重映射-remap函数
- 实现多种重映射综合示例
- opencv3重映射基础介绍
- Java+opencv3.2.0之重映射
- opencv3学习之图像的翻转--重映射
- JS数组去重的多种实现
- Hibernate 映射文件中多种关联关系的实现
- stm32f103串口实现重映射功能
- AndeSight 下printf重映射实现
- 重构—多种方法实现学生下机
- 重映射
- 重映射
- 两种实现PPC地址重映射的方案
- 如何使用OpenCV函数 remap 来实现简单重映射
- 如何使用OpenCV函数 remap 来实现简单重映射
- Hibernate注解方式多种映射
- Android进阶之倒计时多种实现方式与倒计时暂停重启
- UFT工具 飞机订票系统订单 价格测试脚本
- Android Dialog的十种类型汇总
- opencv3累计概率霍夫变换-HoughLinesP函数
- Django跨站伪造请求保护措施设置方法
- 面向对象的三个特征
- opencv3实现多种重映射
- poj 1006 && hdoj 1370 Biorhythms 【CRT】
- Android lint 自动检测并删除无用资源
- opencv3实现重映射-remap函数
- 在Unity3D中加载外部图片的两种方法
- 程序员的发展之道---海贼王(山治)
- 10月16日
- opencv3直方图均衡化
- 快速幂模版