vc++ vfw视频处理 腐蚀化有关问题

vc++ vfw视频处理 腐蚀化问题
回调函数调用腐蚀程序如下

int CBmpTrack::yuy2Erosion(BYTE * pBits, int num,long lWidth,long lHeight)
{
int TempBuf[9]={1,0,0,1,1,0,1,1,1};
int TempH=3;
int TempW=3;
int LineByte = lWidth;
int i,j,k,l,n;
int flag; //标志变量
unsigned char* m_pImgDataOut; 
unsigned char* m_pImgData1Out; 
m_pImgDataOut=new unsigned char[num/2];//申请输出图像位图数据缓冲区
m_pImgData1Out=new unsigned char[num/2];//申请输出图像位图数据缓冲区
//memcpy(m_pImgDataOut,pBits,num); // 复制变换后的图像 
//针对图像中每一个像素位置,判断是否结构元素能填入目标内部
for (n=0;n<num/2;n++) 
{
m_pImgDataOut[n]=pBits[n*2];
}
for(i=TempH/2;i<lHeight-TempH/2;i++)
{
for(j=TempW/2;j<lWidth-TempW/2;j++)
{
//判断结构元素是否可以在当前点填入目标内部,1为可以,0为不可以
flag=1;
for(k=-TempH/2;k<=TempH/2;k++)
{
for(l=-TempW/2;l<=TempW/2;l++)
{
//如果当前结构元素位置为1,判断与对应图像上的像素点是否为非0
if(TempBuf[(k+TempH/2)*TempW+l+TempW/2])
{
//如果图像当前象素为0,则没有击中该点,不是腐蚀的输出
if(!*(m_pImgDataOut+(i+k)*LineByte+j+ l))
flag=0;
}
}
if(flag)
*(m_pImgData1Out+i*LineByte+j)=255;
else
*(m_pImgData1Out+i*LineByte+j)=16;
}
}}
for (n=0;n<num/2;n++) 
{
pBits[n*2]=m_pImgData1Out[n];
}
return 1;
}

运行后结果有重影,如图


------解决方案--------------------
好强大啊
------解决方案--------------------
恭喜楼主解决问题,多谢分享。
------解决方案--------------------
楼主的图片是怎么插入到帖子的啊, 我插图片,总是弹出http的地址?