matlab函数interp2及其c++代码
最近将一个matlab程序转为c++,途中遇到interp2这个家伙,我是左查右查,发现网上没有人总结这个玩意,于是我来初探一下,还是别有洞天的,嘿嘿。
1、关于interp2
Vq = interp2(X,Y,V,Xq,Yq,'linear',0),X和Y表示采样点的坐标,可以是向量或者矩阵,比如我们要画一个网格,网格点坐标可以理解为采样点的坐标。Xq和Yq表示查询点的坐标,同样可以是向量或者矩阵,即我们需要插值的地方,当然它的步长小于或等于X和Y的步长,相当于对网格进行细化。V是采样点处的值。Vq即得到插值点处的值。感觉有点啰嗦,看下面的吧。
这个函数是干什么的呢?假设一幅灰度图像,坐标矩阵是X和Y,一个表示行,一个表示列,对应的像素值矩阵为V。现在在Xq和Yq处对它进行双线性插值,即返回新插值点的像素值矩阵Vq。
现在咱们看个列子:
第一幅图像是横纵坐标都为[-3,3],函数值为正态分布的立体图像。第二幅图像在第一幅图像基础上进行双线性插值得出的结果,从图中可以看出,其结构更加精细。
2、c++代码
在opencv函数库中,可以用remap函数来完成相同的功能。当然,在使用这个函数之前,你得完成opencv的配置。
src是源图像
dst是经过插值之后输出的目标图像
map1和map2是插值点坐标,类型为CV_16SC2,CV_32FC1和CV_32FC2,此处需注意,如果map1是(x,y)的形式,那么map2是空映射。
interpolation是插值方法的类型:INTER_NEAREST,INTER_LINEAR,INTER_AREA,INTER_CUBIC,INTER_LANCZOS4
。
intborderMode是边界模式,当borderMode=BORDER_TRANSPARENT时,目标图像对应源图像的外点不被修改。
borderValue,当边界是固定的时被使用,其值为0。
下面我们看一下这个函数的使用:
matlab函数interp2及其c++代码的更多相关文章
- C语言实现matlab的interp2()函数
项目要用到matlab中的Vq = interp2(X,Y,V,Xq,Yq)函数,即把一个已知经纬度和对应值的矩阵,插值变换到一个给定经纬度网格中,也就是对给定网格填值,需要用到插值,这里使用双线性内 ...
- WPF调用Matlab函数方法
有的时候用C#写图像处理方法,比较费事,不如Matlab简单,但是Matlab又做不出WPF那样的好看界面,怎么办呢. 今天正好我要实现这个功能,就顺便写个小例子,给需要的人做个借鉴. 想要用WPF调 ...
- opencv通过dll调用matlab函数,图片作为参数
[blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数 前文介绍了如何“csharp通过dll调用opencv函数,图片作为参数”.而在实 ...
- matlab函数拟合
1 函数拟合 函数拟合在工程(如采样校正)和数据分析(如隶属函数确定)中都是非常有用的工具.我这里将函数拟合分为三类:分别是多项式拟合,已知函数类型的拟合和未知函数类型的拟合.matlab中关于函数的 ...
- 【从业余项目中学习2】C# 实现调用Matlab函数(Visual Studio:2008, Matlab:R2009a)
最近正在给客户做的个人项目,要求实现C#与Matlab之间的调用,即C# winform界面收集用户输入的参数,将参数传递给Matlab的算法计算,Matlab函数返回的结果显示在winform界面上 ...
- C++调用Matlab函数求特征值
最近需要用到C++和Matlab的混编,记录一下学习过程~ 要实现的是调用Matlab函数,求矩阵前k个最小的特征值及其特征向量. //C++ #include "engine.h" ...
- Matlab函数编译成dll供c调用
一 编译dll 在Command Window窗口中输入mbuild -setup,然后会出现语句,是否安装编译器,选择n,因为机子上已经安装了C/C++/C#的编译器,选择VS2010.
- matlab函数_连通区域
1. matlab函数bwareaopen──删除小面积对象格式:BW2 = bwareaopen(BW,P,conn)作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域.算法:(1)De ...
- matlab函数bwareaopen的详解
matlab函数_连通区域 1. matlab函数bwareaopen──删除小面积对象格式:BW2 = bwareaopen(BW,P,conn)作用:删除二值图像BW中面积小于P的对象,默认情况下 ...
随机推荐
- Fabrik – 在浏览器中协作构建,可视化,设计神经网络
Fabrik是一个在线协作平台,通过简单的拖放界面来构建,可视化和训练深度学习模型. 它允许研究人员使用Web GUI协同开发和调试模型,该GUI支持导入,编辑和导出广泛流行的框架(如Caffe,Ke ...
- tar包和jar包和war包的区别?
tar:tar是*nix下的打包工具,生成的包通常也用tar作为扩展名,其实tar只是负责打包,不一定有压缩,事实上可以压缩,也可以不压缩,通常你看到xxxx.tar.gz,就表示这个tar包是压缩的 ...
- Redis持久化的两种方式(RDB和AOF)
redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File). RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储 ...
- 使用RestTemplate访问restful服务时遇到的问题
可以通过通过wireshark抓包,使用Postman发送请求 wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必 ...
- Docker常见仓库Redis
Redis 基本信息 Redis 是开源的内存 Key-Value 数据库实现. 该仓库提供了 Redis 2.6 ~ 2.8.9 各个版本的镜像. 使用方法 默认会在 6379 端口启动数据库. $ ...
- Openstack: change endpoint IP addresses after installation
Prerequisites You have a single node DevStack installation using mysql for the database that was wor ...
- RE模块疑问
待处理: >>> re.findall(r'[-+]*\d+(?:\.\d+)?','-++++---+123.012') ['-++++---+123.012'] >> ...
- 分享一个CUDA的环境配置属性表,从此不用再担心配置不好CUDA环境了
本文适用: Visual Studio 2008,C++, CUDA版本不限,不过我用的是5.5做的实验. 先贴出属性表的内容: <?xml version="1.0" en ...
- 使用DWR实现自动补全 类似百度搜索框的自动显示效果
使用DWR实现自动补全 自动补全:是指用户在文本框中输入前几个字母或汉字的时候,自动在存放数据的文件或数据库中将所有以这些字母或汉字开头的数据提示给用户供用户选择 在日常上网过程中,我们经常使用搜索引 ...
- springmvc文件上传和拦截器
文件上传 用到这两个包 配置视图解析器:springmvc配置文件配置 <!-- id必须要是"multipartResolver" --> <bean id=& ...