【问题标题】:I used Open CV to get the Image Difference using Python and code doesn't work我使用 Open CV 使用 Python 获取图像差异,但代码不起作用
【发布时间】:2019-06-27 17:18:37
【问题描述】:

我正在使用 Python 3.6.2。我正在寻找运行此代码https://www.pyimagesearch.com/2017/06/19/image-difference-with-opencv-and-python/,但我收到此错误:

用法:[-h] -f FIRST -s SECOND 错误:需要以下参数:-f/--first, -s/--second"

当我运行这段代码的最后一行时,我不知道出了什么问题:

from skimage.measure import compare_ssim
import argparse
import imutils
import cv2
import args

ap = argparse.ArgumentParser()

ap.add_argument("-f", "--first", required=True,default='I:\Aaron - Satslab\Pyimagesearch - code - Image processing and computer vision and others\image-difference\images\first.png',
    help="firstinputimage")

ap.add_argument("-s", "--second", required=True,default='I:\Aaron - Satslab\Pyimagesearch - code - Image processing and computer vision and others\image-difference\images\second.png',
    help="second")

args = vars(ap.parse_args())

期待您的帮助。

【问题讨论】:

  • “错误”很明显。您“应该”从脚本(例如,run.py)运行它并按照消息提示运行它:例如,python run.py --first {PATH_TO_IMAGE1} --second {PATH_TO_IMAGE2}。请继续阅读本教程。刚看了一下,好像没看懂,直接复制粘贴就行了。

标签: python-3.x opencv deep-learning arguments


【解决方案1】:

问题是您为添加的参数添加了默认值,但没有设置required=False。这意味着程序在解析参数时会抛出异常,除非您使用实际的-f/--first-s/--second 调用它。

解决办法是:

  1. 在两个add_argument 调用中设置required=False,因为您提供了默认值。这样,您可以调用python my_script.py,它将使用提供的默认值。
  2. 通过提供两个 CLI 选项来调用您的程序:python my_script. py -f some_file.png -s some_other_file.png

【讨论】:

    猜你喜欢
    • 2021-04-18
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2011-08-09
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多