[求助]把下面这VC代码翻译成C#的
void CImageCompressView::DoHough() {
int temp=0;
for(int i=0;i<theApp.ROW-1;i++)
{
for(int j=0;j<theApp.COL-1;j++)///取每个象素
{
temp=theApp.iImageDataTemp[i][j];
int value[9];///存入当前3*3窗口内的象素
GetPixelValueEx(value,i,j);
long t=0,t1=0;
for(int k=0;k<4;k++)
{
for(int m=0;m<8;m++)///对3*3模板卷积
{
t1+= Hough[k][m]*value[m];
}
if(t1>t)
t=t1;
}
if(t>m_iValve)
theApp.iImageDataTemp[i][j]=255;
else
theApp.iImageDataTemp[i][j]=0;
}
}
ShowImage(1);
}
void CImageCompressView::GetPixelValueEx(int *value, int i, int j)
{
value[0]=GetPixelValue(i-1,j-1);
value[1]=GetPixelValue(i,j-1);
value[2]=GetPixelValue(i+1,j-1);
value[3]=GetPixelValue(i-1,j);
value[4]=GetPixelValue(i,j);
value[5]=GetPixelValue(i+1,j);
value[6]=GetPixelValue(i-1,j+1);
value[7]=GetPixelValue(i,j+1);
value[8]=GetPixelValue(i+1,j+1);
}
////计算偏移地址
int CImageCompressView::GetPixelValue(int i, int j)
{
int m=i;
int n=j;
if(i<0)
m=-i;
if(i>(theApp.ROW-1))
m=theApp.COL-i+1;
if(j<0)
n=-j;
if(j>(theApp.COL-1))
n=theApp.COL-j+1;
return theApp.iImageData[m][n];
}
其中theApp.iImageDataTemp[i][j]
和theApp.iImageData[i][j]都是当前处理图象的二维数组(全局)
///以下是全局数组
int Hough[4][9] = {
{-1, 0, 1,
-1, 0, 1,
-1, 0, 1},
{-1, -1, 0,
-1, 0, 1,
0, 1, 1},
{-1, -1, -1,
0, 0, 0,
1, 1, 1},
{0, -1, -1,
1, 0, -1,
1, 1, 0}
};