You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cv2.imwrite循环存图时文本重叠及f-string路径报错如何解决

问题根因与修复方案

问题1:文字重叠、仅生成1张图

你所有循环复用的是同一个底图对象,OpenCV的putText是直接在原图内存上修改,所以每次画的文字都会保留在上一次的结果上,且所有保存路径都写死为同一个文件名,每次循环都会覆盖上一次的保存结果。
修复逻辑:每次循环都复制一份原始的干净底图,再在副本上写文字,避免不同比分的内容互相影响。

问题2:路径Unicode报错

Windows系统路径的反斜杠\在Python普通字符串中会被识别为转义字符,你路径里的\U刚好是Unicode字符的前缀,触发解码错误。同时保存文件名需要唯一,不能全部用同一个名字。
修复逻辑:路径统一用原始字符串(加r前缀)+ f-string生成带比分的唯一文件名,避免转义和覆盖问题。


修复后完整代码

import cv2
import numpy as np

# 固定参数配置
game_name = "Man United v. Manchester"
nft_id = "contract address/token ID"
pic_file = "cat_rainbow.png"
# 保存文件夹路径,用原始字符串避免转义,提前手动创建好该文件夹
save_dir = r"C:\Users\holli\PycharmProjects\NFT\multiple_nfts\\"

# 预先生成干净的原始底图,只做一次resize
base_pic = cv2.imread(pic_file)
base_template = cv2.resize(base_pic, (1100, 800))

def make_templ(game_name, score, nft_id, bg_img):
    cv2.putText(bg_img, 'if the score of', (55, 255), cv2.FONT_HERSHEY_DUPLEX, 3, (0, 0, 255), 3)
    cv2.putText(bg_img, f'{game_name}', (100, 355), cv2.FONT_HERSHEY_DUPLEX, 3, (0, 0, 255), 3)
    cv2.putText(bg_img, f'is', (160, 455), cv2.FONT_HERSHEY_DUPLEX, 3, (0, 0, 255), 3)
    cv2.putText(bg_img, f'{score}', (360, 500), cv2.FONT_HERSHEY_DUPLEX, 3, (0,0,255),3)
    cv2.putText(bg_img, f'get...nft#{nft_id}', (100, 600), cv2.FONT_HERSHEY_DUPLEX, 3, (0, 0, 255), 3)
    return bg_img

# 生成所有比分组合
team1_scores = list(range(10))
team2_scores = list(range(10))
all_scores = [[x,y] for x in team1_scores for y in team2_scores]

def batch_generate_nft():
    for score in all_scores:
        # 每次复制原始底图,避免和上一次的结果叠加
        current_img = base_template.copy()
        # 把比分转成友好字符串
        score_str = f"{score[0]}-{score[1]}"
        # 生成带文字的图
        result_img = make_templ(game_name, score_str, nft_id, current_img)
        # 生成唯一保存路径,用比分当文件名避免覆盖
        save_path = f"{save_dir}cat_nft_{score_str}.png"
        cv2.imwrite(save_path, result_img)

# 运行生成
batch_generate_nft()

注意事项

运行前先确认save_dir对应的文件夹已经存在,OpenCV不会自动创建不存在的目录,否则会报错无输出。生成的文件名格式为cat_nft_0-0.png、cat_nft_0-1.png,共100张,每张文字互不重叠。

内容的提问来源于stack exchange,提问作者Jesse Holliday

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:24:01