在MAC中安装Dlib-python3以及OpenCV-python3

本文是在mac中的python3的基础上安装Dlib以及OpenCV,首先先装好python3,并安装好必要的库numpy:

$ pip3 install numpy

安装OpenCV

1.Mac 下可以直接使用 brew 来安装OpenCV,具体步骤如下:

# add opencv3
$ brew tap homebrew/science

# install opencv3
$ brew install opencv3

注:现opencv也支持python3,所以也可install opencv。

2.若自定义安装python3,则可直接测试是否安装完毕;若使用anaconda来安装的python3,则执行下面的命令,或直接将/usr/local/Cellar/opencv/3.1.0_4/lib/python3.6/site-packages/下的cv2.so拷贝到/Users/ltc/anaconda/lib/python3.6/site-packages/目录中。

echo /usr/local/Cellar/opencv3/3.1.0_4/lib/python3.6/site-packages/ >> /Users/ltc/anaconda/lib/python3.6/site-packages/opencv3.pth

3.测试

$ python
$ import cv2

若不报错,则安装成功。

安装Dlib

1.安装dlib依赖:
dlib安装需要的依赖有:openblasopencv

$ brew install openblas 
$ brew install opencv

dlib的so库需要的依赖是:libboostcmake

$ sudo pip install libboost-python-dev cmake

若未找到安装包,则手动装入boost以及cmake。

1)手动安装boost
(1)进入http://www.boost.org/users/download/,找到boost_1_66_0.tar.bz2文件并下载。
(2)解压,移动到想放置的目录。
(3)进入解压后的目录:

$ cd /.../boost_1_66_0 #目录需补充完整

(4)输入安装地址:

#./bootstrap.sh —prefix=安装目录
#例如:
./bootstrap.sh —prefix=/Library/boostinstall

(5)输入安装指令并等待:

$ ./b2 install

安装boost结束。

2)手动安装cmake:
(1)下载安装程序,地址为https://cmake.org/download/,下载cmake-3.10.2-Darwin-x86_64.dmg。
(2)在Launchpad中,打开CMake,若出现下面的表单设置,先不关闭。
表单设置
点击顶部CMake状态栏的Tools,选择“How to Install For Command Line Use”,出现如下表单:
CMake
(3)在终端输入上面表单的第二行,即:

$ sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

则安装完毕。

2.下载dlib
采用git方法:

$ git clone https://github.com/davisking/dlib.git

3.下载后解压安装dlib

$ cd dlib/examples
$ mkdir build
$ cd build
$ cmake .. 
$ cmake --build . --config Release

注:dlib文件夹位置可自行更换。若出现cmake..无效,则cmake未安装或安装失败,需重新安装cmake。

4.安装dlib中python3模块

$ cd dlib
$ sudo python3 setup.py install

5.测试dlib

$ python3
$ import dlib

若无误,则安装成功。

注:有可能出现numpy库有问题,需要更新numpy:

$ pip3 install --upgrade numpy

若出现Could NOT find Boost,则是boost未安装或安装失败,需要重新配置boost。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
是的,你可以使用OpenCV-Pythondlib库实现嘴巴和眼睛的分割。以下是基本步骤: 1. 使用dlib的人脸检测器检测人脸。 2. 使用dlib的关键点检测器检测人脸的关键点,其包括眼睛和嘴巴的关键点。 3. 根据关键点的位置,使用OpenCV的形态学操作和阈值处理来分割眼睛和嘴巴。 你可以使用以下代码片段开始: ```python import cv2 import dlib # 加载人脸检测器和关键点检测器 detector = dlib.get_frontal_face_detector() predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat') # 读取图像 image = cv2.imread('test.jpg') gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 检测人脸 faces = detector(gray, 0) for face in faces: # 检测关键点 landmarks = predictor(gray, face) # 提取嘴巴关键点 mouth_points = [] for i in range(48, 68): x = landmarks.part(i).x y = landmarks.part(i).y mouth_points.append((x, y)) # 提取左眼关键点 left_eye_points = [] for i in range(36, 42): x = landmarks.part(i).x y = landmarks.part(i).y left_eye_points.append((x, y)) # 提取右眼关键点 right_eye_points = [] for i in range(42, 48): x = landmarks.part(i).x y = landmarks.part(i).y right_eye_points.append((x, y)) # 分割嘴巴 mouth_mask = np.zeros((image.shape[0], image.shape[1]), dtype=np.uint8) mouth_hull = cv2.convexHull(np.array(mouth_points)) cv2.drawContours(mouth_mask, [mouth_hull], -1, 255, -1) mouth = cv2.bitwise_and(image, image, mask=mouth_mask) # 分割左眼 left_eye_mask = np.zeros((image.shape[0], image.shape[1]), dtype=np.uint8) left_eye_hull = cv2.convexHull(np.array(left_eye_points)) cv2.drawContours(left_eye_mask, [left_eye_hull], -1, 255, -1) left_eye = cv2.bitwise_and(image, image, mask=left_eye_mask) # 分割右眼 right_eye_mask = np.zeros((image.shape[0], image.shape[1]), dtype=np.uint8) right_eye_hull = cv2.convexHull(np.array(right_eye_points)) cv2.drawContours(right_eye_mask, [right_eye_hull], -1, 255, -1) right_eye = cv2.bitwise_and(image, image, mask=right_eye_mask) # 显示结果 cv2.imshow('Mouth', mouth) cv2.imshow('Left Eye', left_eye) cv2.imshow('Right Eye', right_eye) cv2.waitKey(0) cv2.destroyAllWindows() ``` 请注意,此代码片段仅用于演示目的,并且可能需要进行更改以适应您的特定情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值