【问题标题】:TypeError: bad argument type for built-in operation What is wrong in my code?TypeError:内置操作的参数类型错误我的代码有什么问题?
【发布时间】:2018-01-31 22:10:49
【问题描述】:

我收到一个错误,TypeError: bad argument type for built-in operation 。 我在data.py中写了代码,

import os
import cv2
import argparse
import numpy as np
import math

parser = argparse.ArgumentParser(description='')
parser.add_argument('input_dir' ,help='input directory')
parser.add_argument('output_dir' ,help='out directory')

args = parser.parse_args()

def find_all_files(directory):
    for root, dirs, files in os.walk(directory):

        for file in files:
            p=os.path.join(root, file)
            p=p.split("/")[len(p.split("/"))-2]
            name, ext = os.path.splitext(p)

            yield os.path.join(root, file)

dirname=args.output_dir
if not os.path.exists(dirname):
    os.mkdir(dirname)


folder_img = find_all_files(args.input_dir)
im =cv2.imread(folder_img)
cv2.imwrite(args.output_dir ,im)

当我运行 python data.py ./photo ./copy_photo (我想从 photo 文件夹中读取图像并将输出图像放在 copy_photo 文件夹中)时,会发生错误。我应该如何解决这个问题?我的代码有什么问题?我在下面写了 print(folder_img) folder_img 变量和 find_all_files 方法,但未显示打印语句。

回溯说

Traceback (most recent call last):
  File "data.py", line 175, in <module>
    im =cv2.imread(folder_img)
TypeError: bad argument type for built-in operation

【问题讨论】:

  • 请粘贴完整的回溯和错误信息
  • @ElmoVanKielmo 我添加了回溯。如果你知道什么,请帮助我。

标签: python


【解决方案1】:

你给cv2.imread(folder_img)一个文件列表,它接受一个文件。

cv2.imread

如果你没有对中间的图像做任何事情,只需copy它。

别用

for f in folder_img:
    im =cv2.imread(f)
    # do your stuff
    cv2.imwrite(args.output_dir ,im)

【讨论】:

  • 谢谢你的回答。我写了你的代码,但是 OpenCV 错误:imwrite_,文件 /Users/travis/build/skvark/opencv-python 中的未指定错误(找不到指定扩展名的编写器) /opencv/modules/imgcodecs/src/loadsave.cpp,发生第 459 行错误。我应该如何解决这个问题?
  • name, ext = os.path.splitext(p) 没用。
  • @user9287271 调试您尝试写入的文件类型,并在cv2.imwrite API 允许此类文件时进行搜索。如果没有,谷歌/搜索cv2 + write + your extension 看看会弹出什么。如果没有弹出,请创建一个新问题,即“如何使用 cv2.imwrite() 编写 thisfielname.extension”,详细说明您在 imread() 和 imwrite() 之间所做的事情
猜你喜欢
  • 2018-06-08
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 2016-04-18
相关资源
最近更新 更多