小白學習音視頻(四)源碼編譯OpenCV
關注微信號:cpp手藝人,獲取更多文章
1.源碼下載,OpenCV的源碼放在github上面了。
git clone https://github.com/opencv/opencv
但是我用的不是最新的源碼編譯的,我用的是3.3.1編譯。
2.使用cmake生成vs2013 解決方案。
我這裏使用的cmake版本是cmake-3.17.2-win64-x64,大家可以根據需要自己在cmake的官網
自行下載,下載地址:https://cmake.org/download/
2.1 cmake操作步驟
點擊Configure的時候,會出現讓你選擇編譯的VS版本,你要選擇的你機器上安裝的vs版本,因爲我第一次的時候就已經選過vs2013,這裏就不會在提示我。
在搜索框輸入world,如下所示,也一併勾選上。
2.2 打開VS2013 解決方案
在解決方案中,我們編譯下整個解決方案。
在編譯的過程中會出現如下的錯誤。
解決辦法:
到這裏OpenCV編譯已經結束了
3.測試OpenCV demo
3.1 編譯成功的文件
編譯成功之後,生成的庫文件和dll文件分別如下路徑,注意要替換成你自己的路徑。這裏給你展示的是debug的路徑,帶d的後綴表示debug版本。
3.2 測試
3.2.1 我們把OpenCV的頭文件和編譯的lib和dll放到自己的項目中
3.2.2 測試代碼
void showimage()
{
Mat image = imread("wechat_web.png");
namedWindow("img");
imshow("img", image);
waitKey(0);
}
void padding_rgb()
{
Mat mat(800, 600, CV_8UC3);
// 元素字節數大小
int es = mat.elemSize();
int size = mat.rows*mat.cols*es;
// 地址遍歷連續的Mat
for (int i = 0; i < size; i += es) {
mat.data[i] = 255; // B
mat.data[i+1] = 100; // G
mat.data[i+2] = 100; // R
}
namedWindow("mat");
imshow("mat", mat);
waitKey(0);
}
int main(int argc, char *argv[])
{
// showimage();
padding_rgb();
return 0;
}
效果圖如下
到這裏,OpenCV源碼編譯和測試demo已經完成。下一節使用OpenCV獲取攝像頭和使用FFmpeg推流