-
大小: 11KB文件類(lèi)型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-06-09
- 語(yǔ)言: C/C++
- 標(biāo)簽: 光流場(chǎng)??
資源簡(jiǎn)介
實(shí)現(xiàn)運(yùn)動(dòng)平滑約束(Horn-Schunck)光流場(chǎng)估計(jì)算法,對(duì)兩幅連續(xù)圖像進(jìn)行光流場(chǎng)估計(jì),畫(huà)出光流場(chǎng)圖及殘差圖。
代碼片段和文件信息
?/*?This?program?is?“optical?flow“.It?is?pragrammed?with?“OPEN?CV“.
????It?can?only?be?used?in?picture?of?BMP(8bitone?channel).
It?is?written?by?DENGTAO.
E-MAIL:?dengtao520@gmail.com
24th/Apr/2011
?*/
#include?“stdafx.h“
#include?
#include?
#include?“highgui.h“
#include?“cv.h“
#define?pic_width?512???????????????????????????????//處理圖片的像素
#define?pic_height?384
#define?block_size?8???????????????????????????????//分塊的大?。ㄒ?yàn)榘衙總€(gè)像素的光流都畫(huà)出的話(huà),就看不清了,只能畫(huà)一小塊中某點(diǎn)的光流矢量)
#define?V_width_size?pic_width/block_size???????????//塊的數(shù)目(橫向和縱向的數(shù)目)
#define?V_height_size?pic_height/block_size
#define?ws?10
????????????????????????????????????????//控制平滑約束權(quán)重常數(shù)?????????????????????????????????????????????????????????????????
#define?AMP_CON?5????????????????????????????????//調(diào)整光流失量的常數(shù)
#define?ARROR_AMP_CON?3
static?const?double?pi=3.14159265358979323846;
using?namespace?std;
inline?static?void?allocateOnDemand(IplImage?**imgCvSize?sizeint?depthint?channels);
void??optical_paint(IplImage?*frameint?pixel_xint?pixel_yint?amp_xint?amp_y);
void?pic_infor(char?*nameint?ifstream?*infileBITMAPFILEHEADER?*bmp_file_headBITMAPINFOHEADER?*bmp_inf);
void?save_pic_infor(char?**p);
void?disp_opfl_reer(IplImage?**frame_blankIplImage?**resi_err
char?frame1[pic_width][pic_height]char?frame2[pic_width][pic_height]);
void?show_pict(char?*p[2]IplImage?**frame_blankIplImage?**resi_err
???char?frame1[pic_width][pic_height]char?frame2[pic_width][pic_height]);
???????????????????????????????????????????????????????????????????????//?主函數(shù)lightflow.cpp?:?程序入口
int?main(int?argcchar*?argv[])
{???
static?char?frame1[pic_width][pic_height]frame2[pic_width][pic_height];?//存儲(chǔ)兩幀圖像像素信息的二維數(shù)組
char?*p[2]={(char*)frame1(char*)frame2};??????????????????????????
IplImage?*frame_blank=NULL*resi_err=NULL;????????????????????????//?定義OpenCV的結(jié)構(gòu)體指針變量(分別用來(lái)指向光流圖和殘差圖)?
show_pict(p&frame_blank&resi_errframe1frame2);????????????????//?畫(huà)出光流圖和殘差圖
????return?0;
}
?void?show_pict(char?**pIplImage?**frame_blankIplImage?**resi_err
?char?frame1[pic_width][pic_height]char?frame2[pic_width][pic_height])
?{??char?*q[2]={p[0]p[1]};
????char?input_char[10];????????????????????????????????????????????????
??? while(1)???????????????????????????????????????????????????????????//畫(huà)出多組連續(xù)圖像的光流圖和殘差圖?????????????????????
{?
?????cout<<“show?the?optical?flow???YES?or?NO“< ?cin>>input_char;
?if(!strcmp(input_char“YES“))?????????????????????????????????????//需要畫(huà)出光流和殘差圖時(shí),輸入YES
?{??p[0]=q[0];?????????????????????????????????????????????????????//每次處理前,要將指針數(shù)組p指向frame1和紛擾me
????p[1]=q[1];
save_pic_infor(p);?????????????????????????????????????????????//該函數(shù)將保存并顯示bmp圖像的相關(guān)信息
????disp_opfl_reer(frame_blankresi_errframe1frame2);????????????//畫(huà)出光流場(chǎng)和殘差圖
?}
?else?
?{
??????cout<<“BYEBYE!“< ??break;
?}
}
?}
????????????
?void?save_pic_infor(char?**p)????????????????????????????????
評(píng)論
共有 條評(píng)論