資源簡介
在智能小車上(Arduino、主控板)搭載wifi模塊和攝像頭,發送數據到電腦,vs2013處理數據后發回小車,達到實時視頻監測和遠程遙控控的目的,所有代碼都是用txt文檔保存的,直接在vs中復制即可。(需提前配置好opencv3.0)
代碼片段和文件信息
#include?“opencv2/video/tracking.hpp“
#include?“opencv2/imgproc/imgproc.hpp“
#include?“opencv2/highgui/highgui.hpp“
#include?
#include?
#include?
#include?
#include?
#include?
#include?
HANDLE?hComm;
OVERLAPPED?m_ov;
COMSTAT?comstat;
using?namespace?cv;
using?namespace?std;
Mat?image;
bool?backprojMode?=?false;//表示是否要進入反向投影模式,ture表示準備進入反向投影模式?
bool?selectobject?=?false;//代表是否在選要跟蹤的初始目標,true表示正在用鼠標選擇
int?trackobject?=?0;//代表跟蹤目標數目
bool?showHist?=?true;//是否顯示直方圖?
Point?origin;//用于保存鼠標選擇第一次單擊時點的位置?
Rect?selection;//用于保存鼠標選擇的矩形框?
int?vmin?=?10?vmax?=?256?smin?=?30;
static?void?onMouse(int?event?int?x?int?y?int?void*)
{
if?(selectobject)//只有當鼠標左鍵按下去時才有效,然后通過if里面代碼就可以確定所選擇的矩形區域selection了??
{
selection.x?=?MIN(x?origin.x);
selection.y?=?MIN(y?origin.y);
selection.width?=?std::abs(x?-?origin.x);
selection.height?=?std::abs(y?-?origin.y);
selection?&=?Rect(0?0?image.cols?image.rows);//用于確保所選的矩形區域在圖片范圍內??
}
switch?(event)
{
case?EVENT_LBUTTONDOWN:
origin?=?Point(x?y);
selection?=?Rect(x?y?0?0);//鼠標剛按下去時初始化了一個矩形區域?
selectobject?=?true;
break;
case?EVENT_LBUTTONUP:
selectobject?=?false;
if?(selection.width?>?0?&&?selection.height?>?0)
trackobject?=?-1;
break;
}
}
//c?-?停止追蹤\n“
//b?-?開/關-投影視圖\n“
//h?-?顯示/隱藏-對象直方圖\n“
//p?-?暫停視頻\n“;
const?char*?keys?=
{
“{1|??|?0?|?camera?number}“
};
bool?ProcessErrorMessage(char*?ErrorText)
{
char?*Temp?=?new?char[200];
LPVOID?lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER?|?FORMAT_MESSAGE_FROM_SYSTEM
NULL
GetLastError()
MAKELANGID(LANG_NEUTRAL?SUBLANG_DEFAULT)?//?Default?language
(LPTSTR)&lpMsgBuf
0
NULL
);
sprintf(Temp?“WARNING:?%s?Failed?with?the?following?error:?\n%s\nPort:?%d\n“?(char*)ErrorText?lpMsgBuf?“com2“);
MessageBox(NULL?Temp?“Application?Error“?MB_IConstop);
LocalFree(lpMsgBuf);
delete[]?Temp;
return?true;
}
bool?openport(char?*portname)//打開一個串口
{
hComm?=?CreateFile(portname
GENERIC_READ?|?GENERIC_WRITE
0
0
OPEN_EXISTING
FILE_FLAG_OVERLAPPED
0);
if?(hComm?==?INVALID_HANDLE_VALUE)
return?FALSE;
else
return?true;
}
bool?setupdcb(int?rate_arg)
{
DCB?dcb;
int?rate?=?rate_arg;
memset(&dcb?0?sizeof(dcb));
if?(!GetCommState(hComm?&dcb))//獲取當前DCB配置
{
ProcessErrorMessage(“GetCommState()“);
return?FALSE;
}
/*?--------------------------------------------------------------------?*/
//?set?DCB?to?configure?the?serial?port
dcb.DCBlength?=?sizeof(dcb);
/*?----------?Serial?Port?Config?-------?*/
dcb.BaudRate?=?rate;
dcb.Parity?=?NOPARITY;
dcb.fParity?=?0;
dcb.StopBits?=?ONESTOPBIT;
dcb.ByteSize?=?8;
dcb.fOutxCtsFlow?=?0;
dcb.fOutxDsrFlow?=?0;
dcb.fDtrControl?=?DTR_CONTROL_DISABLE;
dcb.fDsrSensitivity?=?0;
dcb.fRtsControl?=?RTS_CONTROL_DISABLE;
dcb.fOutX?=?0;
dcb.fInX?=?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\CAR1\
?????文件?????????691??2015-08-29?14:12??CAMEROCAR\CAR1\CAR.ino
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\CAR2\
?????文件?????????751??2015-08-29?13:57??CAMEROCAR\CAR2\CAR2.ino
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\CAR3\
?????文件????????1547??2015-08-29?15:45??CAMEROCAR\CAR3\CAR3.ino
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\CAR4\
?????文件????????4418??2015-08-23?14:30??CAMEROCAR\CAR4\CAR4.ino
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\CAR5\
?????文件????????4438??2015-08-23?17:30??CAMEROCAR\CAR5\CAR5.ino
?????文件?????????667??2015-08-28?17:53??CAMEROCAR\Opencv獲取網絡攝像頭demo.txt
?????文件?????????812??2015-08-29?14:44??CAMEROCAR\wifi發送數據改進版demo.txt
?????文件????????1033??2015-08-29?14:15??CAMEROCAR\wifi發送數據原demo.txt
?????文件????????7494??2015-08-26?11:00??CAMEROCAR\串口調試demo.txt
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\串口通訊2\
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\串口通訊2\.vs\
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\串口通訊2\.vs\Godhelpme\
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\串口通訊2\.vs\Godhelpme\v14\
?????文件???????20480??2015-08-19?13:09??CAMEROCAR\串口通訊2\.vs\Godhelpme\v14\.suo
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\串口通訊2\arduino\
?????文件????????1083??2015-08-26?14:34??CAMEROCAR\串口通訊2\arduino\arduino.ino
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\串口通訊2\bbbbbbbbbbbb\
?????文件?????????883??2015-08-26?14:03??CAMEROCAR\串口通訊2\bbbbbbbbbbbb\bbbbbbbbbbbb.ino
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\串口通訊2\camshift\
?????文件????????1032??2015-08-27?17:27??CAMEROCAR\串口通訊2\camshift\camshift.ino
?????文件???????13408??2015-08-27?17:27??CAMEROCAR\串口通訊2\camshift\彩色目標追蹤-串口通訊cpp.cpp
?????目錄???????????0??2015-12-25?20:10??CAMEROCAR\串口通訊2\Debug\
?????文件???????54784??2015-08-23?17:21??CAMEROCAR\串口通訊2\Debug\Godhelpme.exe
?????文件??????907492??2015-08-23?17:21??CAMEROCAR\串口通訊2\Debug\Godhelpme.ilk
?????文件?????1149952??2015-08-23?17:21??CAMEROCAR\串口通訊2\Debug\Godhelpme.pdb
?????文件????39387136??2015-08-23?17:31??CAMEROCAR\串口通訊2\Godhelpme.sdf
............此處省略78個文件信息
評論
共有 條評論