基于 C++ 和 Python 的 OpenCV 环境搭建
目录
- Ⅰ、VS 中基于 C++ 的 OpenCV 环境搭建(编译源码 cmake + opencv 4.2.0 + opencv_contrib 4.2.0)
- 1-1. 安装 cmake
- 1-2. 使用 cmake-gui 配置 opencv
- 1-3. 添加 opencv_contrib,生成建构档
- 1-4. 使用vs2019打开建构项目,编译、安装
- Ⅱ、Anaconda 中基于 Python 的 OpenCV 环境搭建
- 2-1. 用 Anaconda 安装 OpenCV
- 2-2. Pycharm 建立工程验证
- 参考文章
Ⅰ、VS 中基于 C++ 的 OpenCV 环境搭建(编译源码 cmake + opencv 4.2.0 + opencv_contrib 4.2.0)
由于下载发行版无论是去 OpenCV 官网 还是 Github 都很慢,这里选择去码云下载源码并用 Cmake (官网同样很慢,这里选择去腾讯软件中心下载,搜索 cmake,选择 64 位版本,点击普通下载)编译,注意,本文是采用编译 opencv 源码的方式进行 opencv 环境的搭建,这种方式十分繁琐,类似打包发布一个跨平台 Qt 程序。如果网络允许,下载的到 opencv 安装包,解压后直接配置环境是最简单快捷的。
本机配置环境:
- win10 x64 1909
- VS 2019
- cmake-3.15.5-win64-x64
- opencv 4.2.0
- opencv_contrib 4.2.0
cmake 是跨平台的建构工具,能产生标准的建构档(如 Unix 的 Makefile),opencv 源码工程中放置已开发的稳定功能模块,opencv_contrib 中是正在开发的新特性分支。
配置流程1:
- 使用 cmake-gui 配置 opencv
- 添加 opencv_contrib,生成建构档
- 使用 vs2019 打开建构项目,编译、安装
默认 VS 已经配置好,并且上述所需文件已经下载好,下面是主要配置过程:
1-1. 安装 cmake
在下图安装选项处选择添加到系统 PATH 中,并生成桌面图标
1-2. 使用 cmake-gui 配置 opencv
- 解压 mirrors-opencv-master.zip 获得 opencv 源码,如下图:
- 使用 cmake-gui 编译 opencv:
- 一般会出现 ippicv_2019_win_intel64_20180723_general.zip opencv_videoio_ffmpeg_64.dll opencv_videoio_ffmpeg.dll 这三个文件下载不下来的情况,许多博客有谈过这个问题,解决方法并不复杂,但是需要能够畅通访问外网,比如直接去Github下载(要根据自己的版本修改 url)或者直接浏览器打开类似下面的这种网址:
https://raw.githubusercontent.com/opencv/opencv_3rdparty/自己的MD5校验码/ffmpeg/opencv_ffmpeg.dll
用下载得到的文件替换原来下载失败的文件,我的情况是下载速度十分慢,普通网络不可能成功,最终参照这篇博客2将他的两个方法结合使用,最后成功:
首先下载他的.cache
文件夹,将ippicv_2019_win_intel64_20180723_general.zip
文件前的校验码替换成自己的(因为自己所需的正好就是 20180723 这个版本)
但是之后同样的方法替换opencv_ffmpeg.dll
和opencv_ffmpeg_64.dll
没有成功,在 cmake 配置时仍然会重新下载这两个文件,这时再按照博客所述第一种方法,修改ffmpeg.cmake
文件中的下载地址,红框中改为staticdn.net
。
因为在我这里只采用第一种方式行不通,仍然会报错(下图所示情况),所以最后的解决方式有点绕弯,可能不具普遍性,如有不同,请多参考其他博客。
1-3. 添加 opencv_contrib,生成建构档
(这里也将 BUILD_opencv_world 勾选上)
这时出现 boostdesc_bgm.i 等文件和 face_landmark_model.dat 文件下载不下来的情况。
boostdesc_bgm.i 等文件参考博客3后仍未解决,问题和上面 ffmpeg 一样,即便把下好的文件拷过去,在生成的时候还是会重新下载(可能是没放对位置,应该不是大多数博客所描述的位置),这里仍然采用改变下载地址的方式得到解决,具体是将opencv_contrib解压路径\modules\xfeatures2d\cmake\
文件夹下的两个 cmake 文件中的地址改成staticdn.net
。
对于 face_landmark_model.dat 的解决方式,仍然是修改下载地址,所要修改的文件和路径是:
opencv_contrib解压路径\modules\face\CMakeLists.txt
最终会在安装目录\opencv\build
文件夹下的生成 OpenCV.sln VS 项目。
1-4. 使用vs2019打开建构项目,编译、安装
- 全部编译
在 cmake-gui 中点击 open project 或者直接打开安装目录\opencv\build
文件夹下的 OpenCV.sln 项目(可能用管理员方式打开),然后全部编译(编译出 Debug 和 Release 版本)方便之后使用:
耐心等待,这个过程十分漫长,十分吃电脑性能。 - 生成 install
- 新建空 VS 项目,使用编译好的 install 文件,配置项目环境4
(1) 添加环境变量
系统变量 Path 中添加安装目录\opencv\build\install\x64\vc16\bin
(2) 配置项目属性
(3) 测试代码5
新建源文件
测试代码:
#include "opencv2/core/utility.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"#include <stdio.h>using namespace cv;
using namespace std;int edgeThresh = 1;
Mat image, gray, edge, cedge;// define a trackbar callback
static void onTrackbar(int, void*)
{blur(gray, edge, Size(3, 3));// Run the edge detector on grayscaleCanny(edge, edge, edgeThresh, edgeThresh * 3, 3);cedge = Scalar::all(0);image.copyTo(cedge, edge);imshow("Edge map", cedge);
}static void help()
{printf("\nThis sample demonstrates Canny edge detection\n""Call:\n"" /.edge [image_name -- Default is ../data/fruits.jpg]\n\n");
}const char* keys =
{"{help h||}{@image |../data/fruits.jpg|input image name}"};int main(int argc, const char** argv)
{CommandLineParser parser(argc, argv, keys);if (parser.has("help")){help();return 0;}//!!!!这里将 filename 换成你自己图片的绝对路径就可以了,只要修改这一处!!!!string filename = "C:\\Users\\Joey\\Desktop\\ZZX\\hust.jpg";image = imread(filename, 1);if (image.empty()){printf("Cannot read image file: %s\n", filename.c_str());help();return -1;}cedge.create(image.size(), image.type());cvtColor(image, gray, COLOR_BGR2GRAY);// Create a windownamedWindow("Edge map", 1);// create a toolbarcreateTrackbar("Canny threshold", "Edge map", &edgeThresh, 100, onTrackbar);// Show the imageonTrackbar(0, 0);// Wait for a key stroke; the same function arranges events processingwaitKey(0);system("pause");return 0;
}
运行结果:
原图:
结果图:
Ⅱ、Anaconda 中基于 Python 的 OpenCV 环境搭建
2-1. 用 Anaconda 安装 OpenCV
默认已经安装有 Anaconda ,清华源当下是正常的,下面列举一些 conda 操作:
# 添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/conda config --set show_channel_urls yes# conda 更新
conda update conda
# anaconda(升级anaconda前需要先升级conda)
conda update anaconda
# anaconda-navigator 更新
conda update anaconda-navigator
# spyder 更新
conda update spyder
# 更新所有包
conda update --all
由于之前 Anaconda 配置过很多环境,而深度学习框架更新的很快,大多数现在已经不合适了,这里重装了一次 Anaconda,直接将 OpenCV 配置在 base 环境中,可以看到 openCV 最新版是 4.2.0:
如果上面安装速度很慢,可以尝试用 conda 命令行(Anaconda Prompt)安装(可能 anaconda navigator 中使用的是官方源)
conda install libopencv=4.2.0
conda install opencv=4.2.0
conda install py-opencv=4.2.0
安装过程如下:
2-2. Pycharm 建立工程验证
我这里相当于重新配置了 Anaconda 和 Pycharm,一开始就要选择编译器,这里可以在工程设置中修改。
添加代码测试:
import cv2
import sysif __name__ == "__main__":# 将自己准备的图片拷贝到当前目录下image = cv2.imread('hust.jpg', cv2.IMREAD_ANYCOLOR)cv2.imshow("image", image)cv2.waitKey(0)cv2.destroyAllWindows()
注意更换编译器后需要漫长等待 Pycharm 建构项目。
构建完成后,需要配置目标文件:
运行结果:
综上,完成了 Pycharm 中 OpenCV 环境的配置。
参考文章
(win10 + vs2019) cmake编译 (opencv4.1.0 + opencv_contrib4.1.0) ↩︎
ippicv_2019_win_intel64_20180723_general.zip opencv_videoio_ffmpeg_64.dll opencv_videoio_ffmpeg.dll ↩︎
安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案(附带资源) ↩︎
win10(x64)+vs2019+openCv4.1.0环境搭建 ↩︎
Windows下 Cmake + VS 编译 OpenCV (+ opencv_contribute)源码 ↩︎
基于 C++ 和 Python 的 OpenCV 环境搭建相关推荐
- 【学习OpenCV4】案例3:OpenCV Python语言开发环境搭建
本书分享内容来自图书学习OpenCV 4:基于Python的算法实战>,该书刚刚上市,是国内第一本系统讲解OpenCV4各个模块的图书,配套案例深入浅出的讲解.第一章有在各个平台搭建环境的介绍, ...
- CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建
本文章为各位介绍一篇关于CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建 python web django 框架的例子. 作为一个严谨(其实就是有强迫症)的程序,为 ...
- OpenCV环境搭建(一)
OpenCV环境搭建 环境搭建为OpenCV的python(一下简称py)开发环境搭建,建立在py3的环境和语法上实现的. windows系统搭建 系统环境:windows 10 + python 3 ...
- ESP8266基于WIN10+UBUNTU18.04的开发环境搭建(RTOS 3.2)(比较水)
ESP8266基于WIN10+UBUNTU18.04的开发环境搭建(RTOS v3.2) 软件基础环境参考 硬件环境参考 软件环境安装的详细内容 软件基础环境参考 WIN10家庭版1803的64位版本 ...
- NLP1 —— Python自然语言处理环境搭建
最近开始研究自然语言处理了,所以准备好好学习一下,就跟着<Python自然语言处理>这本书,边学边整理吧 安装 Mac里面自带了python2.7,所以直接安装nltk就可以了. 默认执行 ...
- 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建
基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 文章目录 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 一.环境搭建 1.虚拟机Ubuntu系统安装 2.dock ...
- 使用飞凌嵌入式IMX6UL-C1板子——qt+opencv环境搭建
使用飞凌嵌入式IMX6UL-C1板子--qt+opencv环境搭建 准备工作: Ubuntu18.04虚拟机环境 飞凌官方提供的qt-tslib库,gcc交叉编译器,opencv源码库,qt源码,具体 ...
- python配置OpenCV环境_总结
文章目录 一.说明 二.步骤 1 下载4个工具 2 出现pip版本错误,更新版本 3 卸载原pip 4 卸载错误 5 下载最新版pip 6 查看pip版本 7 检查是否成功 三.总结 简单粗暴 检查 ...
- 手把手教你们Python配置OpenCV环境,小白看一遍就会了☀️《❤️记得收藏❤️》
手把手教你们Python配置OpenCV环境,小白看一遍就会了☀️<❤️记得收藏❤️>
最新文章
- 关于一些Linux SVN的安装使用
- 计算机审计 pdf,计算机审计第三章作业.pdf
- smartsql和mysql_SmartSql 常见问题
- python语言用途-Python是万能的编程语言吗?这五大用途很重要!
- SuperMap产权登记管理平台
- Oracle 11gR2 RAC恢复OCR和VOTE DISK
- lee最短路算法_Lee算法的解释:迷宫运行并找到最短路径
- 使用 stm32实现锂电充电_千次循环使用,ZMI可充电锂电池套装,够用一辈子吗?...
- shell_script_查询主机名、ip地址 、DNS地址
- 【Python实例第28讲】核主成分
- 社会工程学之《反欺骗的艺术》小结(三)
- 台式计算机配置单,最新台式电脑组装配置推荐
- Android原生获取经纬度位置信息
- HTML中span标签使用详解含多种实例(转)
- 球面图形到全景图像的正投影和逆投影
- Mac OS的管理员密码重置方法
- Spark 写hdfs自定义文件名
- wordpress点击伸缩归档(archives)页面
- AI视频融合平台EasyCVR现已支持华为宇视等四种SDK接入
- 大厂offer?拿来吧你!网易有道笔试编程题特辑
热门文章
- 科大讯飞麦克风阵列回声消除须知 V1.0
- PS修改PSD源文件
- Beats:在 Docker 里运行 Filebeat
- 转发: Feign报错feign.RetryableException: too many bytes written executing
- 小程序之定位签到打卡=>腾讯地图SDK
- 主成分回归分析实战教程
- HttpStatus状态详解
- 02-JVM堆里面的分区:Eden,survival (from+ to),老年代,各自的特点?
- 怎样拍摄全景照片?全景图片拍摄流程
- python 老照片修复软件_这款开源的 Python 老照片修复工具火了