《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 差影法模擬物體運動軌跡的研究與實現
差影法模擬物體運動軌跡的研究與實現
劉國柱,高全磊
(青島科技大學 信息科學技術學院,山東 青島 266061)
摘要: 物體在不同介質中的運動軌跡受到介質的粘度、比重的影響,將物體的運行軌跡從圖片中提取出來,有助于分析物體在不同介質中的運動規律。本文中動態視頻轉換成靜態bmp圖片序列,采用差影法針對bmp圖片進行處理,再將處理后的系列bmp圖片進行整合,得到物體的運行軌跡,呈現出物體運行軌跡曲線。結果表明差影法對物體運動軌跡的模擬可靠有效。
Abstract:
Key words :

  摘 要: 物體在不同介質中的運動軌跡受到介質的粘度、比重的影響,將物體的運行軌跡從圖片中提取出來,有助于分析物體在不同介質中的運動規律。本文中動態視頻轉換成靜態bmp圖片序列,采用差影法針對bmp圖片進行處理,再將處理后的系列bmp圖片進行整合,得到物體的運行軌跡,呈現出物體運行軌跡曲線。結果表明差影法對物體運動軌跡的模擬可靠有效。

  關鍵詞數字圖像處理;運動軌跡差影法;bmp圖片

0 引言

  數字圖像處理是指將圖像信號轉換成數字信號并利用計算機對其進行處理的過程[1]。圖像是人類獲取和交換信息的主要來源,因此,圖像處理的應用具有重要作用。本文基于差影法獲取物體運動軌跡。運動軌跡是最重要的物體運動信息之一,通過運動軌跡可以很好地分析物體的運動規律,還可以計算出其他的運動信息,如速度、加速度[2]。使用差影法獲取物體運動軌跡,方法簡單,思路清晰,追蹤運動物體軌跡的過程清晰明了,并且具有很高的魯棒性和處理速度。

1 差影法的原理

  差影法在動態檢測與識別技術、血管造影技術及印刷線路板掩模缺陷的診斷等技術中都有應用,利用差影法可以檢測同一場景中兩幅圖像間的差異[3]。差影法本質就是對圖像進行代數運算,即對兩幅圖片中對應坐標位置的運算。本文的操作使用了圖像相減的做法,即對于同一場景的兩幅圖,圖像的背景是大致相同的,當兩幅圖進行相減時,相同位置的背景因為灰度值相同,使得像素值變為0,而目標物體因為位置不同,所以相減后值不為0,處理后的圖像就只有兩個目標物體的位置有像素點,背景因而變為黑色??梢該说贸鑫矬w的軌跡。其中輸入圖像為A(X,Y)和B(X,Y),輸出圖像為C(X,Y),滿足公式C(X,Y)=A(X,Y)±B(X,Y)[4]。使用差影法將兩幅圖像相減所得結果如圖1、圖2和圖3所示。

001.jpg

2 bmp圖片文件格式

  bmp圖片文件由文件頭、位圖信息頭、顏色信息和圖形數據四部分組成[5]。文件頭主要包含文件的大小、文件類型、圖像數據偏離文件頭的長度等信息;位圖信息頭包含圖像的尺寸信息、圖像用幾個比特數值來表示一個像素、圖像是否壓縮、圖像所用的顏色數等信息。顏色信息包含圖像所用到的顏色表,顯示圖像時需用到這個顏色表來進行調色。文件中的數據塊表示圖像的相應的像素值。bmp文件中位圖數據是以連續行的形式存儲的[6]。具體格式如圖4所示。

002.jpg

  其中,顏色表的大小由位圖信息頭中的位深度決定,當位深度是1、4、8時,分別有2、16、256個顏色表項,當位深度是24時,圖像為真彩色,圖像中每個像素的顏色用3個字節表示,分別對應R、G、B值,圖像文件沒有顏色表項。

  位圖各部分詳細內容如下:

  文件頭:

  typedef struct tagBITMAPFILEHEADER {

  WORD bfType; //位圖文件類型

  DWORD bfSize; //位圖文件的大小

  WORD bfReserved1; //位圖文件保留字1

  WORD bfReserved2; //位圖文件保留字2

  DWORD bfOffBits; //位圖數據部分相

  //對于文件頭的偏移量

  } BITMAPFILEHEADER,

  FAR *LPBITMAPFILEHEADER,

  *PBITMAPFILEHEADER;

  信息頭:

  typedef struct tagBITMAPINFOHEADER{

  DWORD biSize; //該結構所占字節數

  LONG biWidth; //位圖寬度

  LONG biHeight; //位圖高度

  WORD biPlanes; //目標設備平面數目

  WORD biBitCount; //位深度

  DWORD biCompression; //壓縮類型

  DWORD biSizeImage; //位圖數據大小

  LONG biXPelsPerMeter; //水平分辨率

  LONG biYPelsPerMeter; //垂直分辨率

  DWORD biClrUsed; //使用的顏色表項數

  DWORD biClrImportant;

  } BITMAPINFOHEADER,

  FAR *LPBITMAPINFOHEADER,

  *PBITMAPINFOHEADER;

  顏色表(RGB值):

  typedef struct tagRGBQUAD {

  BYTE rgbBlue;

  BYTE rgbGreen;

  BYTE rgbRed;

  BYTE rgbReserved;

  } RGBQUAD;

  其中顏色表和位圖信息頭組成位圖信息:

  typedef struct tagBITMAPINFO {

  BITMAPINFOHEADER bmiHeader;

  RGBQUAD bmiColors[1];

  } BITMAPINFO, FAR *LPBITMAPINFO,

  *PBITMAPINFO;

3 視頻處理流程

  使用差影法,讓兩幅圖片中不同的地方突顯出來,以實現追蹤物體運動軌跡的目的[7],處理流程如圖5所示。首先將視頻轉換為幀序列,然后加載一幅圖片作為背景,再將目標圖片加載到內存,進行差影法處理,處理后若該圖片不是最后一幀則保存差影后的結果為新的背景,繼續操作,直至最后一幀圖片(注:使用AVI格式視頻,幀序列中的圖片格式是bmp)。

003.jpg

4 差影法處理視頻

  使用的開發工具是Visual Studio2010,開發語言為C++,使用類庫MFC、Opencv2。

  4.1 視頻轉換為幀序列

  使用Opencv2來實現avi視頻轉換為bmp格式圖片序列。

  使用cvCaptureFromFile(CString)函數來捕獲視頻中的每一幀。主要代碼如下:

  CvCapture *cap= cvCaptureFromFile(vedioName);

  if (cap==NULL)

  {

  MessageBox("失敗,請確認視頻格式是avi !!");

  EndWaitCursor();

  }

  char fileName[300]; //文件名

  char* format=".bmp"; //圖片格式

  char* fileBag="d:\\testPics\\";

  IplImage* pImg=NULL;

  int frame=0;

  //捕獲每一幀圖片

  while((pImg=cvQueryFrame(cap))!=NULL) {

  frame++;

  strcpy(lastName,"");

  sprintf(lastName,"%s%d%s",fileBag,frame,format);

  //保存捕獲的幀

  cvSaveImage(fileName,pImg,NULL);

  }

  4.2 圖片的加載

  要處理圖片必須將其加載到內存,然后才能做相應的處理。本系統使用MFC中的CFile類,通過CFile的Read函數將圖片讀入[8]。主要代碼如下:

  CFile file;

  //用一定模式打開文件

  if(!file.Open(pathName,CFile::modeRead)) return FALSE;

  DWORD fileLength;

  fileLength = file.GetLength();

  char *m_pBMPBuffer = new char[fileLength + 1];

  if(!m_pBMPBuffer)

  return FALSE;

  if(file.Read(m_pBMPBuffer,fileLength)!=m_nFileLen)

  //從文件中讀入指定字節數的數據

  return FALSE;

  file.Close();

  4.3 使用差影法處理圖片

  通過分析bmp文件的格式,可以分別獲取到圖片的文件頭、信息頭、顏色表、像素數據。由于對同一視頻獲取的幀序列而言,它們的文件頭、信息頭和顏色表都是一致的,故僅處理像素數據部分,處理后,再利用原來圖片的文件頭、信息頭和顏色表等信息,拼湊出一個新的bmp圖片文件。主要代碼如下:

  BITMAPINFOHEADER &bmiHeader_old=

  *(LPBITMAPINFOHEADER)hDIB_Old ;

  BITMAPINFO &bmInfo_old=

  *(LPBITMAPINFO)hDIB_Old ;

  unsigned char pixelValue1,pixelValue2;

  LPSTR lpDst;

  LPSTR lpYuan,lpBack;

  LONG i,j;

  for (i=0;i<bmHeight;i++) //對比每一個像素

  {

  for(j=0;j <perLineBytes;j++)

  {

  lpYuan=(char*)hDIB_Old_Data +

  perLineBytes * i + j;

  lpBack=(char *)hDIB_Template_Data + perLineBytes

  * i + j;

  lpDst = (char *)m_newBMPDATA + perLineBytes * i

  + j;

  pixelValue1= (unsigned char)* lpYuan;

  pixelValue2= (unsigned char)* lpBack;

  *lpDst=(pixelValue1-pixelValue2)<0?abs(pixelValue-

  pixelValue2) : (pixelValue1- pixelValue2);

  }

  }

  CClientDC dc(this);

  CreateDIBitmap(dc.m_hDC,&bmiHeader_old,CBM_INIT,m_

  newBMPDATA,&bmInfo_old,DIB_RGB_COLORS);

  //創建位圖

5 結果分析

004.jpg

  針對圖6和圖7中的兩幀圖像使用差影法處理,得到如圖8所示結果。由圖8可以看出,差影法對求物體運動軌跡是可行的,并且處理后的結果清晰,可以準確地辨別出目標物體。

005.jpg

  通過差影法的循環使用,得到目標物體的運動軌跡如圖9所示。由圖9看出,軌跡清晰明了,目標物體的輪廓明顯,而且處理后的結果并無模糊現象[9]。驗證了差影法模擬運動軌跡的可行性和可靠性。

6 結論

  基于差影法來獲取物體運動軌跡是可行的,并取得了良好的實驗結果,達到了預期目的。文中對獲取物體運動軌跡進行了一些研究,仍有以下內容需要進一步研究:

  (1)文中使用的視頻格式為AVI,圖片的格式為bmp,可以基于本研究,推廣到其他視頻格式和圖片格式的應用。

  (2)可以結合實際問題來分析運動物體的軌跡,如交通運輸、實時監控、行為分析等領域,使系統的可用性更強。

參考文獻

  [1] 李立芳. 淺談數字圖像處理技術及應用[J]. 中國科技信息, 2012(3):78-79.

  [2] 孫達,黃劍華,唐降龍. 大場景中物體運動軌跡的測量[J]. 計算機工程, 2009,35(9):17-18.

  [3] 周彩霞,匡綱要,宋海娜,等. 基于差影法粗分割與多模板匹配的人臉檢測[J]. 計算機工程與設計, 2004,25(10):1648-1650.

  [4] 降雨志,張義順,張華軍,等. 投影法和差影法在焊縫跟蹤圖像識別中的應用[J]. 沈陽工業大學學報, 2005,27(5):558-561.

  [5] 宋葉未,葉建芳. BMP格式位圖文件的分析及顯示算法[J]. 現代電子技術, 2011,34(20):5-7.

  [6] 張明敏. 圖形圖像文件格式解碼實用程序[J]. 中國圖像圖形學報, 1998,3(5):73-79.

  [7] 羅佳佳. 基于差影法與攝像機定標技術的車牌定位研究[D].武漢:武漢理工大學, 2008.

  [8] 宋坤,劉銳寧,李偉明. Visual C++開發技術大全[M]. 北京:人民郵電出版社, 2008.

  [9] 楊曉曉. 高速運動物體軌跡預測的研究[D]. 北京:北京交通大學,2012.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 草草影院www色欧美极品 | 国产成人毛片亚洲精品不卡 | 日本免费人做人一区在线观看 | aaaa级毛片 | 中文字幕一区二区三区精品 | 国产日本欧美在线观看 | 日本s色大片在线观看 | 亚洲国产欧美精品 | 欧美另类 videos黑人极品 | 亚洲精品美女视频 | 亚洲 欧美 激情 另类 校园 | 中国一级毛片欧美一级毛片 | 国产成人精品亚洲日本在线观看 | 日韩在线二区 | 亚洲欧美精品中文字幕 | 国产三级做爰高清视频a | 国产成人综合久久精品红 | 欧美亚洲激情视频 | 国产精品美女久久久久网站 | 91色综合综合热五月激情 | 成人高清无遮挡免费视频软件 | 草草影院第一页yycccom | 精品成人在线观看 | 成人韩免费网站 | a毛片免费全部播放毛 | 91网站在线免费观看 | 一级一片免费视频播放 | 成人精品视频 | 国产亚洲精品久久麻豆 | 九九热爱视频精品视频高清 | 美女毛片视频 | 久久精品爱国产免费久久 | 国产精品久久久久久久久久一区 | 18视频网站在线观看 | 久久久久久久国产a∨ | 国产欧美一区二区三区沐欲 | 一本久综合久久爱 | 欧美极品在线播放 | 成人精品视频在线观看 | 亚洲三级a | 国产在线视频专区 |