本帖最后由 Bestend 于 2013-9-30 09:50 编辑
是多帧平均的程序。但是运行的时候方框内的背景始终变不成黑色,只是把画面变暗了,不过有运动物体的时候物体还是有白色轮廓。请问怎样才能使背景成为黑色呢?下面是帧差法的程序。麻烦大神帮忙看看。谢谢!@[color=rgb(102, 0, 204) !important]zhangmangui
=============================================================================
/*****************进行图像帧差处理********************/
                  /******************处理奇数行**********************/
                                      for(i=intALines;i<intDLines;i++)
                                 {
                                   for(j=intAPixels;j<intDPixels;j++)
                                    {   int temp1;
                                         //      *(Uint8 *)(tempYbuffer2 + i*numPixels + j)=*(Uint8 *)(tempYbuffer13 + i*numPixels + j);
                                               temp1=abs(*(Uint8 *)(tempYbuffer2 + i*numPixels + j) - *(Uint8 *)(tempYbuffer1 + i*numPixels + j));
                                                                   *(Uint8 *)(tempYbuffer + i*numPixels + j) =temp1;
                                if(*(Uint8 *)(tempYbuffer + i*numPixels + j)>threshold)
                                {
                                *(Uint8 *)(tempYbuffer + i*numPixels + j)=0xff;
                                }
                                else
                                {
                                *(Uint8 *)(tempYbuffer + i*numPixels + j)=0x00;
                                            }
                                }
                                 }
                 /******************处理偶数行**********************/
                              for(i=intALines;i<intDLines;i++)
                                 {
                                   for(j=intAPixels;j<intDPixels;j++)
                                    {  int temp2;
                                          //     *(Uint8 *)(tempYbuffer2 + i*numPixels + j)=*(Uint8 *)(tempYbuffer13 + i*numPixels + j);
                                               temp2=abs(*(Uint8 *)(tempYbuffer2 + i*numPixels + j) - *(Uint8 *)(tempYbuffer1 + i*numPixels + j)) ;
                                                                   *(Uint8 *)(tempYbuffer + i*numPixels + j) =temp2;
                                   if(*(Uint8 *)(tempYbuffer + i*numPixels + j)>threshold)
                                {
                                *(Uint8 *)(tempYbuffer + i*numPixels + j)=0xff;
                                }
                               else
                                {
                                *(Uint8 *)(tempYbuffer + i*numPixels + j)=0x00;
                                            }
                                            }
                                                        }
                  } |