參考:金書世界
540度全景影像是什么
540度全景影像是在360度全景影像基礎上的升級功能,它增加了更多的攝像頭來收集周圍的圖像數據。通常,這些攝像頭分布在車輛的更多位置,例如車頂、車底等,以便更全面地捕捉車輛周圍的情況。在開啟全景影像功能時,這些攝像頭收集的圖像數據會被系統處理并拼接在一起,形成一個從車頂鳥瞰的全景俯視圖。這種視圖可以提供更全面的視野,幫助駕駛員更好地了解車輛周圍的環境,從而提高駕駛安全性和便利性。
更新:測試的exe程序,無需解壓碼就可以體驗算法測試效果
鏈接:https://pan.baidu.com/s/1iOFRd0bWQsbt7mx1ADvL-g 提取碼:97nk?
1、壓縮包解壓后顯示如下所示
測試文件包括:可執行的exe文件、測試的視頻等。
2.雙擊exe就可以運行測試程序,測試程序界面顯示如下所示:
3、540度全景按鈕如下所示
視頻效果
AVM全景的多視圖模式--549度全景
4、540全景算法實現代碼如下所示
//MFC彈出命令窗體AllocConsole();freopen("CONOUT$", "w", stdout);//MFC彈出命令窗體int ww = 10;cvNamedWindow("視頻播放", CV_WINDOW_AUTOSIZE); //創建用于顯示的窗體 sprintf(g_Test_Video_Path_D, "video1\\Down.avi");sprintf(g_Test_Video_Path_F, "video1\\Front.avi");sprintf(g_Test_Video_Path_B, "video1\\Back.avi");sprintf(g_Test_Video_Path_L, "video1\\Left.avi");sprintf(g_Test_Video_Path_R, "video1\\Right.avi");IplImage* img_AVM_540 = cvCreateImage(cvSize(JS_AVM_IMGW, JS_AVM_IMGH), 8, 3);CvVideoWriter* writer = cvCreateVideoWriter("result\\540.avi", CV_FOURCC('X', 'V', 'I', 'D'), 25, cvSize(JS_AVM_IMGW, JS_AVM_IMGH));CvCapture* C_img_F = cvCreateFileCapture(g_Test_Video_Path_F); //讀取前視測試視頻CvCapture* C_img_B = cvCreateFileCapture(g_Test_Video_Path_B); //讀取后視測試視頻CvCapture* C_img_L = cvCreateFileCapture(g_Test_Video_Path_L); //讀取左視測試視頻CvCapture* C_img_R = cvCreateFileCapture(g_Test_Video_Path_R); //讀取右視測試視頻CvCapture* C_img_D = cvCreateFileCapture(g_Test_Video_Path_D); //讀取右視測試視頻IplImage* img_F, * img_B, * img_L, * img_R, * img_D; //定義各個視圖的圖像IplImage* CarImage = cvLoadImage("top.png");js_AVM_obj AVMData_540;js_init_avm_540(&AVMData_540, img_AVM_540->width, img_AVM_540->height, 0);IplImage* CarImageResize = cvCreateImage(cvSize(AVMData_540.RFsrc.x - AVMData_540.LFsrc.x + 2 * ww, AVMData_540.LBsrc.y - AVMData_540.LFsrc.y + 2 * ww), 8, 3);cvResize(CarImage, CarImageResize);int num = 0;while (img_F = cvQueryFrame(C_img_F)){img_B = cvQueryFrame(C_img_B);img_L = cvQueryFrame(C_img_L);img_R = cvQueryFrame(C_img_R);img_D = cvQueryFrame(C_img_D);js_getAVM_540(&AVMData_540, img_AVM_540->imageData, img_F->imageData, img_B->imageData, img_L->imageData, img_R->imageData, img_D->imageData, img_F->width, img_F->height, img_AVM_540->width, img_AVM_540->height, img_AVM_540->nChannels, 0);js_DrawCar(img_AVM_540, CarImageResize, AVMData_540.LFsrc.x - ww, AVMData_540.LFsrc.y - ww, CarImageResize->width, CarImageResize->height);Mat img = cvarrToMat(img_AVM_540);putTextZH(img, " 金書世界 \nwww.jinshushijie.com", CvPoint(10, 20), Scalar(0, 0, 255), 30, "楷體", false, false);cvWriteFrame(writer, img_AVM_540);cvShowImage("視頻播放", img_AVM_540);char c = cvWaitKey(1);if (c == 27)break;num++;}cvReleaseVideoWriter(&writer); //釋放視頻保存的結構體cvReleaseCapture(&C_img_F); //釋放前視的圖像結構體cvReleaseCapture(&C_img_B); //釋放前視的圖像結構體cvReleaseCapture(&C_img_L); //釋放前視的圖像結構體cvReleaseCapture(&C_img_R); //釋放前視的圖像結構體cvReleaseCapture(&C_img_D); //釋放前視的圖像結構體cvDestroyWindow("視頻播放"); //釋放顯示的窗體