使用Python+opencv2时的文件命名及路径问题

  最近在做一个数字图像的小项目,在最后的界面与程序结合阶段总是出现单个程序可以运行,但是使用界面传递的参数就运行不了的情况。在网上查了很多相关错误,最终确定是文件命名问题。

错误如下:

cv2.error: OpenCV(3.4.1) C:\Miniconda3\conda-bld\opencv-suite_1533128839831\work\modules\imgproc\src\color.cpp:11214: error: (-215) (scn == 3 || scn == 4) && (depth == 0 || depth == 5) in function cv::cvtColor

  出现这种错误原因是文件命名中含有中文名或者其他cv2中不支持的符号格式,解决方法可以考虑改变命名的编码格式,修改字符型为整型等。

#将cv2.imread变为可读取中文路径的cv_imread()def cv_imread(filePath):   cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),-1)    #imdecode读取的是rgb,如果后续需要opencv处理的话,需要转换成bgr,转换后图片颜色会变化    #cv_img=cv2.cvtColor(cv_img,cv2.COLOR_RGB2BGR)    return cv_img

另外,文件的路径写法也尤其重要,一般系统的路径写法为“C:\Users\27489\Desktop”,在python中‘\’为转义字符,如果路径中继续使用的话,可能会引起歧义,所以建议python中的路径统一使用‘/’或者‘\\’。

原文地址:https://www.cnblogs.com/leflew/p/9949723.html

时间: 2024-10-21 00:28:42

使用Python+opencv2时的文件命名及路径问题的相关文章

用Python写的批量文件重命名

  有些时候下载图片或其他文件,文件名都怪怪的,可选的办法是下载一个文件批量重命名的软件.当然,如果想自己'DIY'一把的话编个Python脚本最好不过了. 下面的代码实现的对指定类型的文件进行批量重命名.拷贝下面的代码到待批量命名的文件夹下,保存为xx.py直接运行,程序会提示需要批量命名的扩展名,以及重命名时的文件前缀. # -*- coding: cp936 -*- """ Created on Wed Jun 25 16:24:23 2014 @author: Adm

详解 Python 中的下划线命名规则

在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单下划线(_)会在以下3种场景中使用: 1.1 在解释器中: 在这种情况下,“_”代表交互式解释器会话中上一条执行的语句的结果.这种用法首先被标准CPython解释器采用,然后其他类型的解释器也先后采用. >>> _ Traceback (most recent call last): Fil

2015/9/9 Python基础(10):文件和输入输出

文件对象文件对象不仅可以用来访问普通的磁盘文件,而且也可以访问其它任何类型抽象层面上的“文件”.一旦设置了合适的“钩子”,你就可以访问文件类型接口的其它对象,就好像访问的是普通文件一样.文件对象的处理要以来很多内建函数,还有很多函数会返回文件对象或者是类文件对象.进行这种轴向处理的主要原因是许多输入/输出数据结构更趋向于使用通用的接口.这样就可以在程序行为和实现上保持一致性.文件只是连续的字节序列,数据传输经常会用到字节流,无论字节流是由单个字节还是大块数据组成. 文件内建函数[open()和f

python的setup.py文件

最近工作需要,用Cython写了*.pyx扩展,并将其编译成C文件,最后转换为so扩展,供python引用 使用 distutils 编译,建立一个setup.py 的脚本 from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext setup( name = 'cython_build_test', cmdclass = {'b

文件操作,路径操作,StringIO和BytesIO,序列化反序列化,正则表达式与python中使用

文件操作 打开操作open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True,opener=None)打开一个文件,返回一个文件对象(流对象)和文件描述符.打开文件失败,则返回异常基本使用: 创建一个文件test,然后打开它,用完关闭文件操作中,最常用的操作就是读和写. 文件访问的模式有两种:文本模式和二进制模式.不同模式下,操作函数不尽相同,表现的结果也不一样.open的参数

python读写、创建文件、文件夹等等

python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r“c:\python”) 检验给出的路径是否是一个文件:os.path.isfile() 检验给出的路径是否是一个目录:os.path.isdir() 判断是否是绝对路径:os.

Python基础之一:文件类型及运算符

一.PYTHON文件类型 1.源代码 Python源代码的文件以"py"为扩展名,由Python解释,不需要编译: 2.字节代码 Python源文件经编译后生成的扩展名为"pyc"的文件: 编译方法:     importpy_compile     py_compile.compile("hello world.py") 3.优化代码 经过优化的源文件,扩展名为".pyo"  python –O –m py_compile 

Python中常见的文件对象内建函数

文件对象内建方法列表 文件对象的方法 操作 file.close() 关闭文件 file.fileno() 返回文件的描述符(file descriptor,FD,整数值) file.flush() 刷新文件的内部缓冲区 file.isatty() 判断file是否是一个类设tty备 file.next() 返回文件的下一行,或在没有其它行时引发StopIteration异常 file.read(size=-1) 从文件读取size个字节,当未给定size或给定负值时读取剩余的所有字节,然后作为

命令行执行python模块时提示包找不到的问题

庄稼人不是专职python开发的道友,虽然与python相识已多年,可惜相识不相知,只是偶尔借助pydev写一些简单的小工具. 多年来,一直困惑于这样一个问题:同样的工程,同样的代码,使用pydev可以运行任意一个python脚本,而使用命令行运行却不行?命令行下(或者双击执行)总是提示"ImportError: No module named xxx"?pydev究竟做了什么魔术呢? 长话短说,以上面工程为例,如果是在命令行中直接执行 python c.py , 都会提示"