OpenCV cvSmooth

cvSmooth(img1,img2,type,param1,param2,param3,param4);
img1は入力画像、img2は平滑化された画像を格納する部分。
typeは平滑化するときのフィルタの種類。
param1は平滑化のパラメータ、param2はスケーリングに関係する部分。param3はガウシアンフィルタの場合、σに関係する。param4は非正方形のガウシアンフィルタを使用する際にセットする。

IplImage構造体

typedef struct _IplImage
{
int nSize; /* sizeof(IplImage) */
int ID; /* version (=0)*/
int nChannels; /* Most of OpenCV functions support 1,2,3 or 4 channels */
int alphaChannel; /* ignored by OpenCV */
int depth; /* pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S,
IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported */
char colorModel[4]; /* ignored by OpenCV */
char channelSeq[4]; /* ditto */
int dataOrder; /* 0 - interleaved color channels,
1 - separate color channels.
cvCreateImage can only create interleaved images */
int origin; /* 0 - top-left origin,
1 - bottom-left origin (Windows bitmaps style) */
int align; /* Alignment of image rows (4 or 8).
OpenCV ignores it and uses widthStep instead */
int width; /* image width in pixels */
int height; /* image height in pixels */
struct _IplROI *roi; /* image ROI. if NULL, the whole image is selected */
struct _IplImage *maskROI; /* must be NULL */
void *imageId; /* ditto */
struct _IplTileInfo *tileInfo; /* ditto */
int imageSize; /* image data size in bytes
(==image->height*image->widthStep
in case of interleaved data)*/
char *imageData; /* pointer to aligned image data */
int widthStep; /* size of aligned image row in bytes */
int BorderMode[4]; /* ignored by OpenCV */
int BorderConst[4]; /* ditto */
char *imageDataOrigin; /* pointer to very origin of image data
(not necessarily aligned) -
needed for correct deallocation */
}
IplImage;

pow(int,int)で関数のオーバーロードができません。

CV2005では怒られます。
pow((int)i,(int)j)というようにキャストしてもダメだったので、調べた結果powにdouble型の何かの変数とint型の変数を組み合わせて使うことでエラー回避可能。
なんという無駄なエラー…。
ということで、pow(double,int)でこの手のエラーは回避可能です。