浏
浏阳人
Unregistered / Unconfirmed
GUEST, unregistred user!
关于图像编程的C++--〉delphi翻译!
lpSrc = (unsigned char *)lpDIBBits 如何翻译为PASCAL语句
其中
BYTE * lpSrc;
// 指向源图像的指针
LPBYTE lpDIBBits = pDib->m_lpImage;
//图像数据的指针
完整的代码段落如下,如果哪位大虾能帮我全段翻译为PASCAL那
自然更好咯!
/*******************************************************
******************
*
* 函数名称:
* DIBMOMENT()
*
* 参数:
* CDib * pDib - 指向CDib类的指针
*
* 返回值:
* BOOL - 成功返回True,否则返回False。
*
* 说明:
* 该函数计算图象的力矩。
*
********************************************************
*****************/
BOOL DIBMOMENT(CDib *pDib)
{
// 指向源图像的指针
BYTE * lpSrc;
//图象的宽度和高度
LONG lWidth;
LONG lHeight;
// 图像每行的字节数
LONG lLineBytes;
//得到图象的宽度和高度
CSize SizeDim;
SizeDim = pDib->GetDimensions();
lWidth = SizeDim.cx;
lHeight = SizeDim.cy;
//得到实际的Dib图象存储大小
CSize SizeRealDim;
SizeRealDim = pDib->GetDibSaveDim();
// 计算图像每行的字节数
lLineBytes = SizeRealDim.cx;
//图像数据的指针
LPBYTE lpDIBBits = pDib->m_lpImage;
// 图象的矩
long nImageMoment[10];
// 循环变量
int i,j;
int ip,jq;
int
pq[10][2]={{0,0},{0,1},{1,0},{0,2},{1,1},{2,0},{0,3},{1,
2},{2,1},{3,0}};
CString CViewNum;
CViewNum="";
for(int k=0;k<10;k++)
{
ip=pq[k][0];
jq=pq[k][1];
nImageMoment[k]=0;
// 临时变量
double temp;
// 计算ip+jq阶矩
// 力矩的计算
for (j = 0
j < lHeight
j++)
{
for(i = 0
i < lWidth
i++)
{
lpSrc = (unsigned char
*)lpDIBBits + lLineBytes * j + i;
temp =
pow((double)i,ip)*pow(double(j),jq);
temp = temp * (*lpSrc);
nImageMoment[k]=nImageMoment[k] + (int)temp;
}
}
CString CView;
CView.Format("图象的(%d,%d)阶力矩为:%d
",ip,jq,nImageMoment[k]);
CViewNum+=CView;
}
// 将结果进行输出
MessageBox(NULL,CViewNum, "计算结果" ,
MB_ICONINFORMATION | MB_OK);
return true;
}
急用!!
lpSrc = (unsigned char *)lpDIBBits 如何翻译为PASCAL语句
其中
BYTE * lpSrc;
// 指向源图像的指针
LPBYTE lpDIBBits = pDib->m_lpImage;
//图像数据的指针
完整的代码段落如下,如果哪位大虾能帮我全段翻译为PASCAL那
自然更好咯!
/*******************************************************
******************
*
* 函数名称:
* DIBMOMENT()
*
* 参数:
* CDib * pDib - 指向CDib类的指针
*
* 返回值:
* BOOL - 成功返回True,否则返回False。
*
* 说明:
* 该函数计算图象的力矩。
*
********************************************************
*****************/
BOOL DIBMOMENT(CDib *pDib)
{
// 指向源图像的指针
BYTE * lpSrc;
//图象的宽度和高度
LONG lWidth;
LONG lHeight;
// 图像每行的字节数
LONG lLineBytes;
//得到图象的宽度和高度
CSize SizeDim;
SizeDim = pDib->GetDimensions();
lWidth = SizeDim.cx;
lHeight = SizeDim.cy;
//得到实际的Dib图象存储大小
CSize SizeRealDim;
SizeRealDim = pDib->GetDibSaveDim();
// 计算图像每行的字节数
lLineBytes = SizeRealDim.cx;
//图像数据的指针
LPBYTE lpDIBBits = pDib->m_lpImage;
// 图象的矩
long nImageMoment[10];
// 循环变量
int i,j;
int ip,jq;
int
pq[10][2]={{0,0},{0,1},{1,0},{0,2},{1,1},{2,0},{0,3},{1,
2},{2,1},{3,0}};
CString CViewNum;
CViewNum="";
for(int k=0;k<10;k++)
{
ip=pq[k][0];
jq=pq[k][1];
nImageMoment[k]=0;
// 临时变量
double temp;
// 计算ip+jq阶矩
// 力矩的计算
for (j = 0
j < lHeight
j++)
{
for(i = 0
i < lWidth
i++)
{
lpSrc = (unsigned char
*)lpDIBBits + lLineBytes * j + i;
temp =
pow((double)i,ip)*pow(double(j),jq);
temp = temp * (*lpSrc);
nImageMoment[k]=nImageMoment[k] + (int)temp;
}
}
CString CView;
CView.Format("图象的(%d,%d)阶力矩为:%d
",ip,jq,nImageMoment[k]);
CViewNum+=CView;
}
// 将结果进行输出
MessageBox(NULL,CViewNum, "计算结果" ,
MB_ICONINFORMATION | MB_OK);
return true;
}
急用!!