VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 7529|回复: 5

二维表格插值算法请教

[复制链接]
 楼主| 发表于 2008-11-27 17:44:50 | 显示全部楼层 |阅读模式
麻烦大家帮忙看看,表格中每一个x和y都有一个对应值z,

比如说表格中:x=1480 y=1;对应的z=2.25

问题:如果我给定x=1800 ;y=4.0,应该如何设计算法插值计算z值?

谢谢!


[ 本帖最后由 xtorque 于 2008-11-27 17:47 编辑 ]
插值问题.JPG
发表于 2008-11-27 20:41:48 | 显示全部楼层
类比我当初图片消锯齿的做法
通过周围存在的4个点按比例计算

(x1,y1)            (x2,y1)
--------------------
|              |   |
|------------------|
|         (x,y)|   |
|              |   |
|              |   |
--------------------
(x1,y2)            (x2,y2)
根据坐标可以得到周围4个点对应的值f(x1,y1),f(x1,y2),f(x2,y1),f(x2,y2)在f(x,y)中占的比重
最后叠加就可以了

PS:这个是粗略做法,数学上还有更精细的插值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-27 21:28:32 | 显示全部楼层
等了半天了!
首先,感谢版主的帮忙!
其次,算法问题解决了,
如果我放置了一个datagrid控件,创建一个6*4的表格
请问,当我输入x和y时
如何判断,x和y的下标
只有确定下表后才能插值的

谢谢

[ 本帖最后由 xtorque 于 2008-11-27 21:38 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2008-11-27 22:29:04 | 显示全部楼层
在表的第一行和第一列里搜索呀
找到相邻的格子满足:x1<=x<=x2,y1<=y<=y2
通常第一行和第一列都是有序的,用2分搜索的话找起来会比较快
回复 支持 反对

使用道具 举报

发表于 2008-11-29 13:16:36 | 显示全部楼层
拉格朗日插值, 牛顿, 高斯等等.

太多了,

LZ这个其实与图片插值是类似的。
回复 支持 反对

使用道具 举报

发表于 2010-10-7 17:18:56 | 显示全部楼层
二维表格插值完美的算法应该是“双三次插值”

http://www.baidu.com/s?wd=%CB%AB%C8%FD%B4%CE%B2%E5%D6%B5&n=2

双三次插值(Bicubic interpolation)
  双三次插值是一种更加复杂的插值方式,它能创造出比双线性插值更平滑的图像边缘。请读者留意下图中的眼睫毛部分,在这个地方,软件通过双三次插值创造了一个象素,而这个象素的象素值是由它附近的(4 x 4)个邻近象素值推算出来的,因此精确度较高。双三次插值方法通常运用在一部分图像处理软件、打印机驱动程序和数码相机中,对原图像或原图像的某些区域进行放大。Adobe Photoshop CS 更为用户提供了两种不同的双三次插值方法:双三次插值平滑化和双三次插值锐化。
  又叫双立方插值,用于在图像中“插值”(Interpolating)或增加“像素”(Pixel)数量/密度的一种方法。通常利用插值技术增加图形数据,以便在它打印或其他形式输出的时候,能够增大打印面积以及(或者)分辨率。
  目前有不同的插值技术可供选用。双立方插值通常能产生效果最好,最精确的插补图形,但它速度也几乎是最慢的。“双线插值”(Bilinear interpolation)的速度则要快一些,但没有前者精确。在商业性图像编辑软件中,经常采用的是速度最快,但也是最不准确的“最近相邻”(Nearest Neighbor)插值。其他一些插值技术通常只在高档或单独应用的程序中出现。
  显然,无论技术多么高级,插补过的数据肯定没有原始数据准确。这意味着对一个图形文件进行插值处理后,虽然文件长度增加了(数据量增大),但不会有原先那幅图锐利,可能会在图形质量上打折扣。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2019-11-14 14:01

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表