| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 798 人关注过本帖
标题:谁做过差分算法求背景的程序啊,请高手帮忙。
只看楼主 加入收藏
duhandan
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-25
收藏
 问题点数:0 回复次数:0 
谁做过差分算法求背景的程序啊,请高手帮忙。
最近要写一个程序。有六十帧图像,是公路交通的。要把上面的车子去掉,求出背景图。。。。。大概的算法知道,是用差分算法。但是不知道图像怎么调用来求和。。。。。。。。要是谁有这种例子就最好了。谢谢了。。。。

那写程序的时候位图文件头和位图信息头。。。。。。不会要写六十次吧?

另外我估计这个程序的大概框架是

一,位图文件头+位图信息头+调色板(这里要不要调用中断?六十帧要写几次这部分的内容?)

二,貌似图片是分r g b 三个值?六十帧的三个值分开相加????????然后相除?(六十帧图像的rgb值怎么存储调用?)

三,输出结果的图像


打开多个图片。。。。。感觉要用循环。。。。。。这个算法实在是不会。。。。。。


目前我的源程序是如下


#include <stdio.h>
#include <dos.h>
#include <ctype.h>
typedef unsigned char word;
typedef unsigned long dword;
typedef unsigned char byte;

unsigned char set_SVGA_mode(int vmode) //BIOS中断调用
  {union REGS r;
    r.h.ah=0;
    r.h.al=vmode;
    int86(0x10,&r,&r);
    return(0);
    }
unsigned int get_SVGA_mode()          //BIOS中断调用
  {union REGS r;
    r.h.ah=0x0f;
    int86(0x10,&r,&r);
    return(r.h.al);
    }
#pragma  pack(push,  2)              //  将当前的对齐方式压栈,设置对齐方式为2  
typedef struct tagBITMAPFILEHEADER  //位图文件信息头
  {word  bftype[0x424d];
    dword  bfsize;
    word  bfreserved1;
    word  bfreserved2;
    dword  bf0ffbits;
    }BITMAPFILEHEADER;
#pragma  pack(pop)                    //  恢复之前的对齐方式
#define FILEHEADSIZE 14
typedef struct tagBITMAPINFOHEADER        //位图信息头
  {dword bisize;
    long  biwidth;
    long  biheight;
    word  biplanes;
    word  bibitcount;
    dword  biconpression;
    dword  bisizeimage;
    long  bixpelspermeter;
    long  biypelspermeter;
    dword  biclrused;
    dword  biclrimportant;
    }BITMAPINFOHEADER;
#define INFOHEADSIZE 40
typedef struct tagRGBQUAD //调色板
    {byte  rgbBLUE;
    byte  rgbGreen;
    byte  rgbRed;
    byte  rgbReserved;
    }RGBQUAD;
  
  long  int  Width;  //全局变量
  long  int  Height;  
  long  int  Newwidth;  
  long  int  Newheight;  
  long  int  BitCount;  
  int          Planes;  
  long  int  Compression;  
  long  int  OffBits;  
  long  int  ColorMap;  
  long  int  BytesPerLine;  
  long  int  CharsPerLine;  
  int  ColorNum;  
   
  
  int  loadBMPhead(char  *file)  //读取像素RGB值并求和求平均(求背景)
        {  
          BITMAPFILEHEADER filehead;
          BITMAPINFOHEADER infohead;
          FILE * fp;
          char data[1024];
          int BytesPerLine;
          fp=fopen("F:\tc3.1\BIN\bmp\\001.bmp","rb");
          fread(&filehead,sizeof(BITMAPFILEHEADER),1,fp);
          fread(&infohead,sizeof(BITMAPINFOHEADER),1,fp);
          BytesPerLine=(infohead.bibitcount*infohead.biwidth+31)/32*4;
                fseek(fp,54,SEEK_SET);
          for(int i=infohead.biheight-1;i>=0;i--){
          fread(data,1,BytesPerLine,fp);
          char Color[1300][3];
          for(int k=0;k <infohead.biwidth*3;k++){
          if(k%3==2){
          Color[k/3][2]=data[k-2];//b
          Color[k/3][1]=data[k-1];//g
          Color[k/3][0]=data[k-0];//r
              }
            }
        //  for(int k=0;k <infohead.biwidth;k++)
        //setPixelV(hdc,k+10,i+10,RGB(Color[k][0],Color[k][1],Color[k][2]));
          }
  int  loadBMPcar()              //用一帧图像和上面求出来的背景分割出车辆图像
        {


        }

    main()                          //将求出来的RGB值反算成BMP图像,输出
{


        }
搜索更多相关主题的帖子: 差分 算法 
2008-11-26 22:22
快速回复:谁做过差分算法求背景的程序啊,请高手帮忙。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020867 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved