小白学习音视频(四)源码编译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推流