近邻取样插值的一些理解:比如原图有100个点,想缩放10倍的话,那就要取10个点,(点的编号)比如0 10 20 30 。。。100(其他点就不要了)下面的的程序建立的取点编号表(这只是X轴例子)
for(x=0;x<dwDstWidth;x++)
{
pdwSrcXTable[x]=(x*ptOriginPic->iWidth/ptZoomPic->iWidth);
}
dwDstWidth目的所取的点个数,ptOriginPic->iWidth/ptZoomPic->iWidth缩放倍数(dwDstWidth =ptZoomPic->iWidth),上面程序就是把所取的点编号放入数组
#include <pic_operation.h>
#include <stdlib.h>
#include <string.h>
/**********************************************************************
* 函数名称: PicZoom
* 功能描述: 近邻取样插值方法缩放图片
* 注意该函数会分配内存来存放缩放后的图片,用完后要用free函数释放掉
* "近邻取样插值"的原理请参考网友"lantianyu520"所著的"图像缩放算法"
*/
int PicZoom(PT_PixelDatas ptOriginPic,PT_PixelDatas ptZoomPic)
{
unsigned long dwDstWidth =ptZoomPi