Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将变量值附加到cv2.imwrite函数_Python_Opencv - Fatal编程技术网

Python 将变量值附加到cv2.imwrite函数

Python 将变量值附加到cv2.imwrite函数,python,opencv,Python,Opencv,我想在cv2.imwrite()函数中附加一个字符串变量的值 我已经做了一个代码来从视频中提取帧,并检查我的目标对象是否存在于帧中。当前,在其中找到目标的帧保存为frame0、frame1等。下面是我的代码 def target_non_target(input_frames_folder,model_file): count=0 folders = glob(input_frames_folder) img_list = [] for folder in

我想在
cv2.imwrite()函数中附加一个字符串变量的值

我已经做了一个代码来从视频中提取帧,并检查我的目标对象是否存在于帧中。当前,在其中找到目标的帧保存为frame0、frame1等。下面是我的代码

def target_non_target(input_frames_folder,model_file):

    count=0
    folders = glob(input_frames_folder)

    img_list = []

    for folder in folders:
        for f in glob(folder+"/*.jpg"):
            img_list.append(f)


    for i in range(len(img_list)):
        print(img_list[i])
        v1=os.path.basename(img_list[i])
        print(v1)
        img_name = os.path.splitext(v1)[0]
        print(img_name)
        image = cv2.imread(img_list[i])
        orig = image.copy()

        image = cv2.resize(image, (28, 28))
        image = image.astype("float") / 255.0
        image = img_to_array(image)
        image = np.expand_dims(image, axis=0)


        print("[INFO] loading network...")
        model = load_model(model_file)


        (non_target, target) = model.predict(image)[0]

        if target > non_target:
            label = "Target"

        else:
            label = "Non Target"

        probab = target if target > non_target else non_target
        label = "{}: {:.2f}%".format(label, probab * 100)


        output = imutils.resize(orig, width=400)
        cv2.putText(output, label, (10, 25),  cv2.FONT_HERSHEY_SIMPLEX,0.7, (0, 255, 0), 2)

        if target > non_target:
            cv2.imwrite("C:\\Python35\\target_non_target\\Target_images_new\\frame%d.jpg"%count,orig)
            count += 1
    #cv2.imshow("Output", output)
        cv2.waitKey(0)



frames_folder = ("C:\\Python36\\videos\\videos_new\\*")

model = ("C:\\Python35\\target_non_target\\target_non_target.model")

target_check = target_non_target(frames_folder,model)
当前,找到目标对象的帧保存为frame0、frame1等。我想用变量IMG_name中的图像原始名称保存帧。如何将其附加到
cv2.imwrite()函数中。我之前的几次尝试给了我这个错误

TypeError:在字符串格式化过程中并非所有参数都已转换


使用
cv2.imwrite()
保存帧时,需要更改字符串格式。当前,您的格式设置为
%d
,它试图在应为字符串时使用整数。您可以使用
%s
或使用内置功能

改变

cv2.imwrite("C:\\Python35\\target_non_target\\Target_images_new\\frame%d.jpg"%count,orig)


%d
表示“数字”,因此,如果您试图将
%count
更改为
%img\u name
,格式将不正确---如果您希望字符串包含
img\u name
字符串,则需要在字符串中使用
%s
。您的问题肯定不清楚:是否要更改输出文件的名称
cv2.imwrite
与文件名无关。只需使用文件名处理,并尝试在字符串格式中使用
os.path.join
,或
%s
cv2.imwrite("C:\\Python35\\target_non_target\\Target_images_new\\frame{}.jpg".format(img_name),orig)