Python-OpenCV

  1. 在终端使用homebrew 安装 python3opencv3
1
2
➜  ~ brew install python3
➜ ~ pip3 install opencv-python
  1. 查看python和opencv的版本。(由于OS X系统自带python2,所以后面会出问题)
1
2
3
4
5
6
7
8
9
➜  ~ python3 --version
Python 3.6.5
➜ ~ python3
Python 3.6.5 (default, Jun 17 2018, 12:15:43)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.4'
  1. 在VS Code的扩展中安装PythonCode RunnerCode Runner是一个方便编译运行的一个插件。

  2. 使用Code Runner右键RunCode,发现输出存在问题。原因是Code Runner不是使用的python3,而是使用 系统自带的python2。

    1
    [Running] python -u "/Users/yi/Documents/Python-opencv/blur.py"

    解决方法:VS Code ➜ 首选项 ➜ 设置 ➜ 用户区 / 工作区(按照自己的情况选择) ➜ 扩展 ➜ Run Code configuration ➜ 找到Executor Map ➜ 在settings.json中编辑。详见Code Runner的说明文档关于configuration描述

    1
    2
    3
    "code-runner.executorMap": {
    "python": "/usr/local/bin/python3"
    }

    修改之后运行得到:

    1
    [Running] /usr/local/bin/python3 "/Users/yi/Documents/Python-opencv/blur.py"
  3. 在.py文件中使用cv2的函数:imread, imshow等,会报错。这是由于VS Code中python的语法检查工具pylint无法识别cv2的函数。

    1
    2
    Module 'cv2' has no 'imread' member pylint(no-member)
    Module 'cv2' has no 'imshow' member pylint(no-member)

    解决方法:VS Code ➜ 首选项 ➜ 设置 ➜ 用户区 / 工作区(按照自己的情况选择) ➜ 扩展 ➜ Python ➜ Python › Linting: Pylint Args ➜ 在settings.json中加入:

    1
    "python.linting.pylintArgs": ["--generate-members"]

C/C++

  1. OS X已经安装XCode

  2. 在VS Code的扩展中安装C/C++C/C++ Clang Command Adapter

  3. 按F5进行调试,需要选择gcc/clang++/…,我使用的是clang++。如果调试没用问题,会在终端显示:

    1
    终端将被任务重用,按任意键关闭。
  4. 使用Code Runner在输出窗口中可以输出C/C++的结果,但是无法进行输入。所以需要进行设置修改:VS Code ➜ 首选项 ➜ 设置 ➜ 用户区 / 工作区(按照自己的情况选择) ➜ 扩展 ➜ Run Code configuration ➜ 找到Run In Terminal 并勾选。

  5. 再使用Code Runner会在终端运行,可以进行输入。

  6. 遇到的问题:

    1
    2
    3
    找不到任务“clang++ build active file”
    preLaunchTask“clang++ build active file”已终止,退出代码为 1。
    运行 preLaunchTask“clang++ build active file”后存在错误。

    最开始以为是没有配置好环境,查了半天,后来发现是程序写的有问题,没有编译通过,只不过以前用vs没见过这种方式的错误提示。
    程序写的没问题的话,再次调试就会显示:终端将被任务重用,按任意键关闭。

  7. 配置clang支持C++ 11(2020.3 update)

    1
    2
    列表初始化vector报错: 
    error: non-aggregate type 'vector<string>' cannot be initialized with an initializer list.
    1
    2
    3
    4
    5
    6
    7
    #终端
    vim ~/.zshrc
    最末行添加: alias g++='g++ -std=c++11'
    source ~/.zshrc
    #vscode:Code->Preferences->Settings, Clang: Cflags、Clang: Cxxflags增加C++11 的配置
    - Clang: Cflags: "-std=c11"
    - Clang: Cxxflags: "-std=c++11"