python - 如何在 AWS lambda 上导入 opencv 模块
问题描述
我正在处理需要我在 AWS 云上运行代码的项目,我尝试了一些教程,并且我成功地在 AWS lambda 上使用了 python numpy 模块,即使我使用的是窗口操作系统,遵循 https:// serverless.com/blog/serverless-python-packaging/
但是,我想导入opencv,我安装了opencv-python-headless by pip install opencv-python-headless
. 毕竟,我无法完成我的开发,被告知“解压缩后的大小必须小于 262144000 字节”,这是真的,因为我的 .zip 文件的大小超过了 300000000 字节。
我的问题是我可以安装更简单的opencv,所以我可以拥有小于一定数量的包,我只想要一些关于cv2的代码:
faceCascade = cv2.CascadeClassifier(cascPath)
image = cv2.imread(imagePath, cv2.IMREAD_GRAYSCALE )
faces = faceCascade.detectMultiScale(
image,
scaleFactor=1.2,
minNeighbors=5,
minSize=(30, 50),
flags = cv2.CASCADE_SCALE_IMAGE
)
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
......
lastimg = cv2.resize(crop_img, (182, 182))
cv2.imwrite("crop_{}".format(imagePath), lastimg)
或者有什么方法可以在 AWS 云上运行这些代码,(例如,我可以在 AWS S3 上上传我的 opencv 模块,并在运行上述 python 代码时下载它。
解决方案
我的问题是我可以安装更简单的opencv,所以我可以拥有小于一定数量的包(...)。
为了实现这一点,您应该自己构建 opencv。
通过这种方式,您可以设置构建选项并创建最适合您需求的版本。
以下是带有说明和构建选项的文档: https ://docs.opencv.org/3.4/d7/d9f/tutorial_linux_install.html
看看这个与你的目标相同的构建示例: https ://github.com/aeddi/aws-lambda-python-opencv/blob/master/build.sh
或者有什么方法可以在 AWS 云上运行这些代码,(例如,我可以在 AWS S3 上上传我的 opencv 模块,并在运行上述 python 代码时下载它。
可悲的是,我不知道。
推荐阅读
- azure - Office 365 管理 API
- excel - VBA代码获取图表最大值并将其放置在单元格中
- javascript - 如何在 Google Sheets App 脚本中获取指定格式的日期?
- c# - EF Core IQueryable 按子属性排序
- javascript - 如何在 npm 脚本中使用 .env 变量
- ios - 返回任何类型 Swift 的函数
- html - 无法让单选按钮包装在 flex 容器中
- python - 尝试从表单输入 e.164 电话号码
- latex - 使用 Biblatex 从我的资源中获取关键字的概览
- django - 在 Django Rest Framework 中使用 to_representation 组合来自相关模型的字段