直播軟體開發,影像視訊的讀取與儲存,以及呼叫相機拍攝
直播軟體開發,影像視訊的讀取與儲存,以及呼叫相機拍攝實現的相關程式碼
1、圖片的讀取、顯示和儲存
//圖片的讀取與儲存 #include <stdio.h> #include <iostream> #include <string> #include <opencv2\opencv.hpp> using namespace std; using namespace cv; int main() { cv::Mat a; a = cv::imread("picture.jpeg", IMREAD_GRAYSCALE);//以灰色影像讀取 if (!a.empty()) { cout << "影像讀取成功" << endl; } else return -1; cv::namedWindow("小黃人",WINDOW_NORMAL);//WINDOW_NORMAL使視窗可以調整大小,更多可選引數檢視原始碼 cv::imshow("小黃人", a); if (cv::imwrite("picture_gray.png", a)) { cout << "影像儲存成功" << endl; } else cout << "影像儲存失敗" << endl; cv::waitKey(0);//防止圖片一閃而過 return 0; }
2、視訊的讀取、顯示和儲存
//視訊的讀取與顯示 #include <stdio.h> #include <iostream> #include <string> #include <opencv2\opencv.hpp> using namespace std; using namespace cv; int main() { VideoCapture video("xiaohuangren.mp4"); if (!video.isOpened()) { cout << "視訊打不開" << endl; } else { cout << "視訊中影像的寬度:" << video.get(CAP_PROP_FRAME_WIDTH) << endl; cout << "視訊中影像的高度:" << video.get(CAP_PROP_FRAME_HEIGHT) << endl; cout << "視訊的幀率:" << video.get(CAP_PROP_FPS) << endl; cout << "視訊的總幀數:" << video.get(CAP_PROP_FRAME_COUNT) << endl; } while (1) { Mat frame; video >> frame; if (frame.empty()) { break;//所有幀影像都賦值給frame後再賦值一次frame變為空 } cv::imshow("小黃人", frame); waitKey(1000 / video.get(CAP_PROP_FPS)); } waitKey(0); return 0; } //呼叫攝像頭進行拍攝顯示 #include <stdio.h> #include <iostream> #include <string> #include <opencv2\opencv.hpp> using namespace std; using namespace cv; int main() { VideoCapture video(0);//0表示攝像頭的ID號 if (!video.isOpened()) { cout << "視訊打不開" << endl; } else { cout << "視訊中影像的寬度:" << video.get(CAP_PROP_FRAME_WIDTH) << endl; cout << "視訊中影像的高度:" << video.get(CAP_PROP_FRAME_HEIGHT) << endl; cout << "視訊的幀率:" << video.get(CAP_PROP_FPS) << endl; cout << "視訊的總幀數:" << video.get(CAP_PROP_FRAME_COUNT) << endl; } while (1) { Mat frame; video >> frame; cv::imshow("你", frame); waitKey(10); } waitKey(0); return 0; } //呼叫攝像頭進行拍攝並儲存視訊 #include <stdio.h> #include <iostream> #include <string> #include <opencv2\opencv.hpp> using namespace std; using namespace cv; int main() { Mat img; VideoCapture video(0); if (video.isOpened()) { cout << "攝像頭開啟成功" << endl; } else { cout << "攝像頭開啟失敗" << endl; return -1; } video >> img; if (img.empty()) { cout << "圖片拍攝失敗" << endl; } bool is_color = (img.type() == CV_8UC3);//判斷圖片是否為彩色影像 VideoWriter writer; int video_encode = VideoWriter::fourcc('D','I','V','X'); writer.open("video_camera.mp4", video_encode, 30, img.size(), is_color);//30表示幀率 while (1) { if (!(video.read(img))) { cout << "攝像頭讀取完畢或者攝像頭斷開連線" << endl; break; } writer.write(img); imshow("video", img); char c = waitKey(50); if (c == 27) { break; } } return 0; }
以上就是 直播軟體開發,影像視訊的讀取與儲存,以及呼叫相機拍攝實現的相關程式碼,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2868513/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- c#如何讀取相機手機的拍攝時間C#
- Cordova開發app——短視訊拍攝APP
- opencv python 從攝像頭獲取視訊/從檔案獲取視訊 /儲存視訊OpenCVPython
- 攝影軟體“留拍”開發現狀與過程遇到的困難
- 短視訊系統,獲取camera的的影像並儲存
- 3、Opencv播放視訊、儲存、暫停視訊,開啟攝像頭OpenCV
- PAD儲存過程以及相關的高階呼叫儲存過程
- 開發直播app軟體過程中的雲端儲存和備份APP
- 直播平臺軟體開發過程中的雲端儲存和備份
- 立體視覺影象對,獲取與儲存視覺
- Android內部儲存和外部儲存,以及讀取Android讀取RAM,ROM內部儲存和外部儲存卡容量Android
- 直播軟體app開發與相愛相殺的短影片如何共同穩住局面APP
- Android 呼叫攝像頭功能【拍照與視訊】Android
- iOS中 讀取相簿,呼叫系統相機iOS
- 軟體開發相關的讀書筆記 問題與方法筆記
- 工具素材分享篇:拍攝剪輯與視訊製作必備!
- iOS 儲存攝像頭H264視訊流iOS
- 超融合、軟體定義儲存、分散式儲存以及Server SAN的區別與聯絡分散式Server
- 3D遊戲引擎之遊戲攝像機的使用 公開課直播視訊3D遊戲引擎
- Avatar虛擬形象解決方案,趣味化的影片拍攝與直播新體驗
- android短視訊開發,呼叫相機、相簿,壓縮圖片後上傳Android
- Android 拍攝(橫 豎屏)視訊的懶人之路Android
- Android 拍攝(橫 \ 豎屏)視訊的懶人之路Android
- 儲存學習之開源儲存軟體
- flutter系列之:在flutter中使用相機拍攝照片Flutter
- 手機 全景拍攝
- 短視訊直播系統開發直播短視訊程式搭建短視訊互動直播
- 直播軟體開發,JS生成隨機字串的方法JS隨機字串
- Python讀取、儲存、檢視.mat檔案Python
- OpenCV計算機視覺學習(1)——影像基本操作(影像視訊讀取,ROI區域擷取,常用cv函式解釋)OpenCV計算機視覺函式
- matlab呼叫攝像頭並儲存成幀的形式Matlab
- Spark(16) -- 資料讀取與儲存的主要方式Spark
- mysql 儲存過程,以及mybatis如何呼叫MySql儲存過程MyBatis
- 一文讀懂瀏覽器儲存與快取機制瀏覽器快取
- 一張圖讀懂軟體定義儲存
- MimoLive for Mac視訊直播製作軟體Mac
- MimoLive for Mac(視訊直播製作軟體)Mac
- 2.影像的載入與儲存