【问题标题】:simple python3 script (openCV) does not run from Bash script简单的 python3 脚本 (openCV) 不能从 Bash 脚本运行
【发布时间】:2020-04-25 06:55:37
【问题描述】:

我有以下 python3 OpenCV 脚本来裁剪图像。如果我从 python 文件运行它,一切正常。

#reshaper.py
import argparse
import imutils
import numpy
import cv2

ap = argparse.ArgumentParser()
args = vars(ap.parse_args())
image = cv2.imread(args["image"])
roi = image[150:500, 150:520] 
cv2.imwrite(args["image"], roi)

但如果将命令从 bash 文件中运行,如下所示:

python3 reshaper.py -i filename.png; 

然后我得到: 文件“reshaper.py”,第 13 行,在 投资回报率 = 图像[150:500, 150:520] TypeError: 'NoneType' 对象不可下标

我想稍后在 bash 脚本中包含一个 for 循环,以重塑目录中的所有文件。

为什么运行 bash 脚本会出错?

非常感谢您的帮助!

【问题讨论】:

    标签: python-3.x bash numpy opencv


    【解决方案1】:

    我将我的 bash 脚本更改为

    for filename in *.png; do
        python3 BacteriaCounter.py -i $filename;
    done
    

    它有效!

    【讨论】:

    • 您可以通过将$filename 括在像"$filename" 这样的双引号中来改进您的脚本,然后如果您的文件名中有空格,它仍然可以工作。您还可以接受文件名列表作为参数并在 Python 中处理多个文件......最初并不重要,但如果您稍后处理数千个文件,您会很高兴您不需要启动整个文件每个文件都有新的 Python 解释器。
    猜你喜欢
    • 1970-01-01
    • 2017-05-28
    • 2017-11-04
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多