C++双线性插值-片段
代码不能直接使用。
for (int j = strRY; j<endRY; ++j)
{
float * pR = result.ptr<float>(j); for (int i = strRX; i < endRX; ++i)
{
// To make sure z value;
float z(FLOAT32_MIN);
int i_(i - pOffset.x), j_(j - pOffset.y); float x = m_mapX.at<float>(j - strRY, i - strRY);
float y = m_mapY.at<float>(j - strRY, i - strRY); // whether out of range.
if (x < 0 || x >= src2.cols || y < 0 || y >= src2.rows)
continue; int lRow = static_cast<int>(y);
int nRow = lRow + 1; int lCol = static_cast<int>(x);
int nCol = lCol + 1; double u = y - lRow;
double v = x - lCol; // interpolation
// right bottom.
if (lRow >= src2.rows - 1 && lCol >= src2.cols - 1)
{
float data = m_mapZ.at<float>(lRow, lCol);
if (data == -1.0e6)
continue; z = (1 - u) * (1 - v) * data;
}
else if (lRow >= src2.rows - 1)//last row
{
float data = m_mapZ.at<float>(lRow, lCol);
float data2 = m_mapZ.at<float>(lRow, nCol);
if (data == -1.0e6 || data2 == -1.0e6)
continue; z = (1 - u) * (1 - v) * data +
(1 - u) * v * data2;
}
else if (lCol >= src2.cols - 1)//last col
{
float data = m_mapZ.at<float>(lRow, lCol);
float data3 = m_mapZ.at<float>(nRow, lCol); if (data == -1.0e6 || data3 == -1.0e6)
continue;
z = (1 - u) * (1 - v) * data + u * (1 - v) * data3;
}
else
{
float data = m_mapZ.at<float>(lRow, lCol);
float data2 = m_mapZ.at<float>(lRow, nCol);
float data3 = m_mapZ.at<float>(nRow, lCol);
float data4 = m_mapZ.at<float>(nRow, nCol);
if (data == -1.0e6 || data2 == -1.0e6 || data3 == -1.0e6 || data4 == -1.0e6)
continue; z = (1 - u) * (1 - v) * data + (1 - u) * v * data2 +
u * (1 - v) * data3 + u * v * data4;
} pR[i] = pR[i] == -1.0e6 ? z : 0.5*(pR[i] + z); }
}
C++双线性插值-片段的更多相关文章
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- 20个非常有用的Java程序片段
下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric strin ...
- MyBatis的一系列问题的处理(遍历Map集合和智能标签和属性和字段不一样的解决办法 和sql片段)(三)
一.字段名与属性名(数据库的名字)不一样怎么办? 方案一:在小配置中配置一个resultMapper <!--方案一:resultMapper 字段名与属性名不一致 --> <res ...
- PAT 1049. 数列的片段和(20)
给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列{0.1, 0.2, 0.3, 0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1 ...
- sublimetext3中保存代码片段
在日常的开发工作中,不断重复上一次敲过的代码,有时确实感到伐木累."蓝瘦"(难受)."香菇"(想哭),大概表达的也是这样的心境吧!:grinning: 所以,在 ...
- 线性插值&双线性插值&三线性插值
http://www.cnblogs.com/yingying0907/archive/2012/11/21/2780092.html 內插是数学领域数值分析中的通过已知的离散数据求未知数据的过程或方 ...
- Code Snippets 代码片段
Code Snippets 代码片段 1.Title : 代码片段的标题 2.Summary : 代码片段的描述文字 3.Platform : 可以使用代码片段的平台,有IOS/OS X/ ...
- 10个 jQuery 代码片段,可以帮你快速开发。
转载自:http://mp.weixin.qq.com/s/mMstI10vqwu8PvUwlLborw 1.返回顶部按钮 你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而 ...
- 深入理解DOM节点类型第四篇——文档片段节点DocumentFragment
× 目录 [1]特征 [2]作用 前面的话 在所有节点类型中,只有文档片段节点DocumentFragment在文档中没有对应的标记.DOM规定文档片段(document fragment)是一种“轻 ...
随机推荐
- IntelliJ IDEA安装与破解教程(一)
官网地址:https://www.jetbrains.com/idea/ IntelliJ IDEA分为:旗舰版(Ultimate).社区版(Community) 旗舰版是收费的,社区版则是免费的.旗 ...
- Java Metrics工具介绍
目录 简介 快速入门 Maven配置 MetricRegistry Gauge Meter Counter Histgram Timer Reporter 更多用法 参考资料 简介 Metric是一个 ...
- ros局部路径规划-DWA学习
ROS的路径规划器分为全局路径和局部路径规划,其中局部路径规划器使用的最广的为dwa,个人理解为: 首先全局路径规划会生成一条大致的全局路径,局部路径规划器会把全局路径给分段,然后根据分段的全局路径的 ...
- 大话设计模式Python实现-外观模式
外观模式(Facade Pattern):为子系统中的一组接口提供一个一致界面,此模式定义一个高层接口,使得子系统更加容易使用 下面是一个外观模式的demo: #!/usr/bin/env pytho ...
- 把ping的结果写入文件
写一个sh文件: #!/bin/bash while true do $|>&` done 保存成ping.sh,赋可执行权限: chmod +x ping.sh 执行: sh ./pi ...
- Vue.js 源码分析(三十二) 总结
第一次写博客,坚持了一个多月时间,Vue源码分析基本分析完了,回过头也看也漏了一些地方,比如双向绑定里的观察者模式,也可以说是订阅者模式,也就是Vue里的Dep.Watcher等这些函数的作用,网上搜 ...
- .NET Core 多框架支持(net45+netstandard20)实践中遇到的一些问题总结
.NET Core 多框架支持(net45+netstandard20)实践中遇到的一些问题总结 前言 本文主要是关于.NET Standard 代码 在多框架 和 多平台 支持自己实践过程中遇到的一 ...
- ubuntu18.04.2下编译openjdk9源码
最近在看<深入理解Java虚拟机 第二版>这本书,上面有关于自己编译OpenJDK源码的内容.自己根据书里的指示去操作,花了三天的时间,重装了好几次Ubuntu(还不知道快照这个功能,好傻 ...
- 大咖云集!Kubernetes and Cloud Native Meetup 深圳站开始报名!
由阿里技术生态联合 CNCF 官方共同出品的 Kubernetes & Cloud Native Meetup 将在 8 月 31 日来到深圳.届时,阿里云.蚂蚁金服高级技术专家将携手来自国内 ...
- [Docker] Win10中安装Docker并运行Nginx镜像
一.安装Docker 进入官网:https://www.docker.com/products/docker-desktop 可能需要先注册登录,很简单的. 点击 Download Desktop f ...