opencv 打开中文路径图报错

server/2024/9/24 8:15:55/

img = cv.imread(中文图, 1)

opencvpythonopencvpythonopencvmodulesimgcodecssrcloadsavecpp_239_cvfindDecoder_imread_Ddownloadpng_cant_openread_file_check_file_pathintegrity_2">[ WARN:0@6.414] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_(‘D:/download/中文.png’): can’t open/read file: check file path/integrity

转换编码无法解决

file_path = path.encode(‘utf-8’).decode(‘utf-8’) # 确保路径是UTF-8编码

标准格式打开无法解决

path = os.path.normpath(path)

正确方式,更换打开中文图方法

中文图

完整代码

import timeimport cv2 as cv
import os
import tkinter as tk
from tkinter import filedialog
from tkinter import messageboximport numpy as np
from PIL import ImageTk, Imagedef open_image_dialog():global file_pathfile_path = filedialog.askopenfilename(title="选择图片", filetypes=[("图片文件", "*.jpg;*.jpeg;*.png;*.bmp")])if file_path:print(file_path)display_image()
def convert_to_gray():pass
def display_image():# img = cv.imread(file_path , 1)  # 路径或名字有中文时,无法读取图片img = cv.imdecode(np.fromfile(file_path, dtype=np.uint8), cv.IMREAD_COLOR)rgb_image = cv.cvtColor(img, cv.COLOR_BGR2RGB)# 将 NumPy 数组转换为 PIL Image,并调整大小img = Image.fromarray(rgb_image)img = img.resize((300, 300), Image.LANCZOS)# 将 PIL Image 转换为 PhotoImagephoto = ImageTk.PhotoImage(img)# 在 tkinter 的 Label 上显示 PhotoImageimage_label.config(image=photo)image_label.image = photo  # 保持对 PhotoImage 的引用pass# 创建 tkinter 窗口
root = tk.Tk()
root.title("图片转灰度工具")# 创建一个 Frame 用于放置按钮
button_frame = tk.Frame(root)
button_frame.pack(pady=10)# 创建一个 Label 用于显示图片信息
image_label = tk.Label(root, text="图片展位", font=("Helvetica", 12))
image_label.pack(pady=20)
# 创建一个 Label 用于显示图片标题
image_title_label = tk.Label(root, text="图片path", font=("Helvetica", 12))
image_title_label.pack(pady=5)# 创建一个 Button 用于选择图片,并放置到 Frame 中
choose_button = tk.Button(button_frame, text="选择图片", command=open_image_dialog)
choose_button.pack(side=tk.LEFT, padx=5)# 创建一个 Button 用于转换图片,并放置到 Frame 中
convert_button = tk.Button(button_frame, text="转换为灰度", command=convert_to_gray)
convert_button.pack(side=tk.LEFT, padx=5)# 创建一个 Button 用于取消操作,并放置到 Frame 中
cancel_button = tk.Button(button_frame, text="取消", command=root.destroy)
cancel_button.pack(side=tk.LEFT, padx=5)# 运行 tkinter 主循环
root.mainloop()

| 在这里插入图片描述 | 在这里插入图片描述 |


http://www.ppmy.cn/server/15598.html

相关文章

后端程序员利用 AI 给网站制作专业 favicon

看看你的 Chrome 浏览器顶部的标签页,每个标签页前面有一个小小的图标,这个就是 favicon,如果你将网页保存到收藏夹,前面也会是这个小图标。这个图标有时候就是网站的 Logo,有时候也不太一样。 上面截图中&#xff0c…

记内网http洪水攻击,导致网页无法访问一事

事由 最近两日,部分同事在访问税纪云平台时,登录跳转页面频繁转圈、要么就是出现无法连接的错误提示。 无法访问此页面 已重置连接。 请尝试: 检查连接检查代理和防火墙运行 Windows 网络诊断经过以下几方面的排查,无果。 后续通过检查…

Footprint Analytics 与 GalaChain 达成战略合作

​ Footprint Analytics 宣布与 GalaChain 达成战略合作。GalaChain 是 Gala 旗下的 Layer 1 区块链。此次合作标志着双方在游戏(包括 Gala Games) 、娱乐和金融等多个行业的区块链生态系统革新方面迈出了重要的一步。 GalaChain 致力于满足企业级项目的广泛需求&…

python之APScheduler

APScheduler是一个用于Python的高级任务调度库,可以在任何Python环境中使用。它提供了各种灵活的方式来定义和执行定时任务,支持多种调度方式,包括固定时间间隔、固定日期时间、CRON表达式等。 首先,需要使用pip安装APScheduler库…

CST Studio初级教程 一

本教程将详细介绍CST Studio Project创建。 新建Project 1. 点击New and Recent,然后点击New Template。 然后依据我们的仿真属类,在下图中做选择需要的模板。 如果做高频连接器信号完整性(SI)仿真,我们就选Microwaves…

3.AlexNet--CNN经典网络模型详解(pytorch实现)

看博客AlexNet--CNN经典网络模型详解(pytorch实现)_alex的cnn-CSDN博客,该博客的作者写的很详细,是一个简单的目标分类的代码,可以通过该代码深入了解目标检测的简单框架。在这里不作详细的赘述,如果想更深…

Excel 公式的定义、语法和应用(LOOKUP 函数、HLOOKUP 函数、VLOOKUP 函数;MODE.MULT 函数; ROUND 函数)

一、公式的定义和语法 二、公式的应用 附录 查找Excel公式使用方法的官方工具【强烈推荐!!!】:Excel 函数(按字母顺序)【微软官网】 excel 函数说明语法LOOKUP 函数在向量或数组中查找值LOOKUP(lookup_va…

深入探讨虚拟现实中的新型安全威胁:“盗梦攻击”及其防御策略

随着虚拟现实(VR)技术的飞速发展,用户体验达到了前所未有的沉浸水平,但也暴露在一系列新的安全威胁之下。本文着重介绍了近期出现的一种高度隐秘且影响深远的攻击手段——“盗梦攻击”。这一概念由芝加哥大学的研究人员提出&#…