python-3.x - 如何删除嵌套的 for 循环并使用 numpy 数组 insead
问题描述
我有一个包含 580 帧的视频。我需要能够从视频中检测到绿色并创建一个掩码,以便在找到绿色的位置放置零值,其余的应该是 255。我已经将视频转换为 HSV 格式并使用嵌套的 for 循环和它大约需要一个小时才能做到这一点我想知道是否有更快的方法来做到这一点。
这是我当前的代码
for i in range(0, len(temp)):
temp[i] = cv2.cvtColor(temp[i], cv2.COLOR_BGR2HSV)
for k in range(0, len(temp)):
for i in range(0, len(temp[k])):
for j in range(0, len(temp[k][i])):
if(temp[k][i][j][0] > 50 and temp[k][i][j][0] < 65 and temp[k][i][j][2] > 150):
temp1[k][i][j][0] = 0
temp1[k][i][j][1] = 0
temp1[k][i][j][2] = 0
else:
temp1[k][i][j][0] = 255
temp1[k][i][j][1] = 255
temp1[k][i][j][2] = 255
temp 是我的 HSV 数组, temp1 是我正在创建的掩码
解决方案
不是cv2
专家,但如果它像numpy
数组一样工作,那么 . . .
for i in range(0, len(temp)):
temp[i] = cv2.cvtColor(temp[i], cv2.COLOR_BGR2HSV)
temp1[i] = (1 - cv2.inRange(temp[i], (50, 0, 150), (65, 255, 255)).astype(int)) * 255
推荐阅读
- python - 如何创建异步 API 的同步版本
- linux - 如何在windows上调试蓝牙堆栈,使用什么工具
- r - 如何访问已部署的 Shiny 应用程序的代码?
- javascript - 从 div id 获取输入时出错
- batch-file - 如何在 Windows 10 上使用 .bat 文件运行 .als 文件,以便生成文本文件中的值
- html - Primeng:添加 p-selectButton 后绝对位置不起作用
- python - python中的列表循环
- c++ - 在 C++98 中生成多项式特征
- linux - 查找具有特定扩展名的文件并将权限限制为特定用户
- c++ - 缺少 vtable 错误说我没有定义我的虚拟功能