Mac 安装 OpenCV 及示例程序

Mac 安装 OpenCV 及示例程序

    • 安装OpenCV
      • 安装 Xcode
      • 安装Homebrew
      • 安装Python
      • 安装OpenCV
      • HelloWorld示例程序

安装OpenCV

安装 Xcode

直接在APP Store中下载安装即可

sudo xcodebuild -license
sudo xcode-select --install

安装Homebrew

≈Mac上的apt-get
参考 Mac API那篇文章,那里已经安装了
安装完可以用brew doctor检查一下
如果有Warning的话根据提示执行一下就好了

安装Python

其实Mac上已经有Python 2.7
但是看了一篇文章这样讲的

The next step is to install the Homebrew versions of Python 2.7 and Python 3. It is considered bad form to develop against the system Python as your main interpreter. The system version of Python should serve exactly that.
https://www.pyimagesearch.com/2016/12/19/install-opencv-3-on-macos-with-homebrew-the-easy-way/

所以还是乖乖安装新的吧

brew install python python3 

这个指令应该是能同时安装python2 和 python3的,但是在我的Mac就是只安装了Python3…所以我用的是

brew install python2 python3 

但是这样装完以后,我看brew管理的包的文件夹下面有python python2 python3三种,然后brew现在指定python默指的是python3 我不知道这是重复安装了还是必须要有个python的文件夹? please inform me if you know
安装完成后

which python
which python3

看一下指向的是不是你自己新安装的python,即路径应该是/usr/local/bin/python and /usr/local/bin/python3 否则如果是/usr/bin/...下的那你用的依然是系统的python

安装OpenCV

其实简单的方法只要

brew install opencv

就好了,但是安装的时候它显示安装的OpenCV版本是4.0.1 就导致我很confused
因为老师说了要求3.x.x版本,所以我以为不行
确实也可以自己手动指定安装版本的,但是后来我才发现,其实这个安装的就是3.4.4版本…可能这两个是不同含义的版本号? please tell me
另外直接安装的话使用的python2.7版本

python #进入python2命令行
import cv2 #import刚刚安装的库,如果没有报错则安装成功了
cv2.__version__ #就是这里它告诉它是3.4.4版本

HelloWorld示例程序

#!/usr/local/bin/python
# -*- coding: UTF-8 -*-
import cv2 #导入OpenCV
capture = cv2.VideoCapture(0) #打开视频,参数为路径;参数为0表示打开笔记本的内置摄像头
print capture.isOpened() #显示打开是否成功
while 1: #死循环
    ret, img=capture.read() #按帧读取视频 ret-帧状态布尔值,img-图像矩阵
    cv2.imshow('hello world',img)
    key=cv2.waitKey(1) #等待键盘输入,间隔1ms waits for a key event infinitely (when [delay]< 0 ) or for [delay] milliseconds,
    if key == 27 : #ESC键的ASCII码
    	print "detect ESC"
        break #退出while循环
capture.release() #释放笔记本摄像头
cv2.destroyAllWindows() #关闭所有图像窗口

效果就是打开一个窗口显示摄像头-按帧显示
但是我的程序接收不到键盘的输入,就是按了ESC后只会在命令行中显示ESC键值,但不会实际退出,有人能告诉我为啥吗??sorry啦发现我写blog其实是求助了吧
解决啦 需要鼠标点一下视频窗口,使程序接收键盘输入而不是命令行接收键盘输入

你可能感兴趣的:(CV)