社区
机器视觉
帖子详情
高分求!!!双三次插值算法的实现代码
Angus_Li
2004-08-13 07:56:47
谁有双三次插值算法的实现代码??高分求!!!
...全文
481
5
打赏
收藏
高分求!!!双三次插值算法的实现代码
谁有双三次插值算法的实现代码??高分求!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
allendragon
2005-03-07
打赏
举报
回复
ehom 牛人啊,四颗星阿,希望以后多交流,我的邮件是allenwjx@hotmail.com
allendragon
2004-08-19
打赏
举报
回复
不好意思,忘了贴上B样条插值核,希望和 ehom多多交流。
ehom
2004-08-18
打赏
举报
回复
楼上的代码都不完整,少了插值核,从函数名是三次B样条
这代码知道了原理不难写,关键是后期优化提高效率
插值核就是滤波器,根据输入值计算加权值,双N次就是在X,Y两个方向计算两次权值,然后在RGB三个通道分别乘两个权值得到新的RGB
随手补完上面的B样条插值核,没调试,不保证对~~~当然楼上代码效率不是很高
float b3spline(float value) {
if (value<0) value=-value;
float temp;
if (value<1) {
temp=sqr(value);
return 0.5*temp*value-temp+2/3;
}
else {
if (value<2) {
value=2-value;
return sqr(value)*value/6;
}
else return 0;
}
}
allendragon
2004-08-17
打赏
举报
回复
彩色图像的双三次插值代码
float f_x, f_y, a, b, rr, gg, bb, r1, r2;
int i_x, i_y, xx, yy;
for(y=0; y<newimgh; y++)
{
f_y = (float) y * yScale;
i_y = (int) floor(f_y);
a = f_y - (float)floor(f_y);
for(x=0; x<newimgw; x++)
{
f_x = (float) x * xScale;
i_x = (int) floor(f_x);
b = f_x - (float)floor(f_x);
rr = gg = bb = 0.0F;
for(int m=-1; m<3; m++)
{
r1 = b3spline((float) m - a);
for(int n=-1; n<3; n++)
{
r2 = b3spline(-1.0F*((float)n - b));
xx = i_x+n+2;
yy = i_y+m+2;
if (xx<0) xx=0;
if (yy<0) yy=0;
if (xx>=pDoc->xdim) xx=pDoc->xdim - 1;
if (yy>=pDoc->ydim) yy=pDoc->ydim - 1;
pos = pDoc->CompPos(xx,yy,k);
voxnode = pDoc->myvoxarray[pos];
if(voxnode.flag != 255)
{
tmpt.x = (unsigned char) (255 * voxnode.matvalue[0]);
tmpt.y = (unsigned char) (255 * voxnode.matvalue[1]);
tmpt.z = (unsigned char) (255 * voxnode.matvalue[2]);
rr += (float)tmpt.x * r1 * r2;
gg += (float)tmpt.y * r1 * r2;
bb += (float)tmpt.z * r1 * r2;
}
}
}
resimg[y][x][0] = (unsigned char) rr;
resimg[y][x][1] = (unsigned char) gg;
resimg[y][x][2] = (unsigned char) bb;
}
}
zzwu
2004-08-16
打赏
举报
回复
可看看下面的网站,有原理,但没有代码:
http://dev.csdn.net/Develop/article/15/15656.shtm
最近邻、双三次、双线性插值,最近邻插值法和双线性插值法,matlab
例如,`bilinear_interpolation.m` 文件可能包含了使用MATLAB的`imresize`函数进行双线性插值的
代码
,`bicubic_interpolation.m` 文件则可能
实现
了
双三次插值
,而`nearest_neighbor.m` 文件很可能是
实现
最近邻插值的...
最近邻、双三次、双线性插值,最近邻插值法和双线性插值法,matlab源码.zip
这些源码对于学习和理解插值
算法
的
实现
非常有价值,通过阅读和运行
代码
,你可以深入理解每种方法的工作原理,并根据实际需
求
选择合适的插值方式。同时,这些源码也可以作为进一步研究和改进的基础,比如优化计算效率...
双立方线性插值
算法
C++
实现
即说明 Bicubic
本文将深入探讨双立方线性插值
算法
的原理、C++
实现
以及其在实际应用中的价值。 双立方线性插值,也被称为
双三次插值
,是基于三次多项式的一种插值方法。在二维图像中,每个像素的值不再仅仅由其周围的4个像素决定,...
图像处理
算法
(一) 3D-LUT插值
算法
之Matlab仿真
本文将详细介绍一种基于3D-LUT的插值
算法
——四面体插值(Tetrahedral Interpolation),并探讨其在Matlab环境下的仿真
实现
。 #### 二、3D-LUT概述 3D-LUT是一种三维查找表,主要用于色彩空间转换和高级色彩校正。与...
bicubic interpolation-matlab.rar_Bicubic_Bicubicinterpolation_ma
总结来说,这个压缩包提供的MATLAB源
代码
为理解和应用
双三次插值
提供了一个实用的平台,有助于图像处理领域的学习者和研究人员深入了解该
算法
并进行相关的实践操作。通过深入学习和调整这两个脚本,可以进一步优化...
机器视觉
4,499
社区成员
15,352
社区内容
发帖
与我相关
我的任务
机器视觉
图形图像/机器视觉
复制链接
扫一扫
分享
社区描述
图形图像/机器视觉
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章