opencv 打开中文路径图报错

devtools/2024/11/6 21:24:39/

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/devtools/15610.html

相关文章

Vivado-IP-DDS and Testbench Learning

DDS内部结构 实现流程 首先新建一个工程,创建bd文件,添加DDS Compiler核,此处不多赘述 Block Design 在观测输出的信号时,需要将最高位符号位的信号取反,这样才能输出正弦波,否则输出的波形如下图所示 将t…

前后端加密解密工具类(前端rsa加密,后端进行解密)

前端代码中传入后端工具类返回的两个加密串信息进行加密 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpo…

若依ruoyi-vue中图标使用介绍

图标使用 使用方式 若依ruoyi-vue中使用全局 Svg Icon 图标组件。地址&#xff1a;src\components\SvgIcon\index.vue 该组件是在src\assets\icons\index.js文件中被注册为全局组件的&#xff0c;可以在项目任意地方使用。所有的图标都在src\assets\icons\svg目录下。可自行添…

PCA(Principal Component Analysis,主成分分析)与矩阵X的协方差矩阵之间的联系

PCA&#xff08;Principal Component Analysis&#xff0c;主成分分析&#xff09;是一种常用的降维技术&#xff0c;用于将高维数据集投影到低维空间中。在PCA中&#xff0c;投影方程将原始特征向量 ( x 1 , x 2 , … , x p ) (x_1, x_2, \ldots, x_p) (x1​,x2​,…,xp​)映射…

01年小伙对编程工作的认知

最近招了一个01年的小伙。半个月离职了。 小伙211本科计算机毕业&#xff0c;有写博客的习惯&#xff0c;面聊时感觉一切正常&#xff0c;感觉经验跟能力匹配&#xff0c;也挺符合岗位。 于是迅速入职上岗&#xff0c;开始干活。 但入职后发现不对劲。 频繁请假&#xff0c…

大学生在线考试|基于SprinBoot+vue的在线试题库系统系统(源码+数据库+文档)

大学生在线考试目录 基于SprinBootvue的在线试题库系统系统 一、前言 二、系统设计 三、系统功能设计 试卷管理 试题管理 考试管理 错题本 考试记录 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#…

学习STM32第十九天

PWR电源控制 一、电源系统 STM32F4xx电源供电结构框图如下 电压管理器&#xff08;Voltage Regulator&#xff09;共有三种模式 run mode 此模式下&#xff0c;电压管理去稳定向核心、内存和外设提供1.2V电压&#xff0c;输出电压可由软件变换。stop mode 此模式下&#xf…

盲人出行挑战与曙光:“盲人视觉辅助技术研发”助力无障碍生活

作为一名资深记者&#xff0c;我深感盲人朋友们在日常出行中面临的种种困难。然而&#xff0c;在科技日新月异的今天&#xff0c;一项名为蝙蝠避障的专为盲人视觉辅助技术研发的领域正在以前沿科技成果&#xff0c;为改善盲人出行困境带来希望之光。本文将深入探讨这一技术如何…