首页 > 编程语言 >Python【cv2:读取图片时报错】

Python【cv2:读取图片时报错】

时间:2024-06-08 19:29:24浏览次数:38  
标签:读取 img OpenCV Python cv2 python opencv 报错

写在前面:opencv库安装

在终端用pip install安装opencv-python
建议使用国内清华源的镜像去安装,加参数-i https://pypi.tuna.tsinghua.edu.cn/simple
代码如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

报错一

我一开始直接用cv2.imread(path),报错

OpenCV(4.10.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:196: error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor’

Q&A
Q:为什么 OpenCV 不支持中文路径?
A:OpenCV 库是在 C++ 写的,而在较早版本的 C++ 标准中并未提供直接的 Unicode 或者多字节字符编码支持。所以,OpenCV 在面对中文路径时,可能解析出现问题,因此最好使用 contains only ASCII 的字符路径。这个问题不只存在于Python中,其他使用 OpenCV 的语言,如 C++,也会遇到。

虽然我的路径没有出现中文和空格,但是用了numpy方法后解决了这个问题

报错二

但还是报错

SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape

结果是发现把路径的\直接复制粘贴成\了

最终效果

import cv2
import matplotlib.pyplot as plt
import numpy

# 读取图像
path = 'C:\\Users\\STEFANOS\\Desktop\\Wallpaper\\A.B\\isle_dead.jpg'
img = cv2.imdecode(numpy.fromfile(path, dtype=numpy.uint8), -1)

# 将BGR图像转为RGB
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# 使用matplotlib显示图像
plt.imshow(img_rgb)
plt.axis('off')  # 不显示坐标轴
plt.show()

在这里插入图片描述

参考:
https://blog.csdn.net/weixin_48477590/article/details/134595606
https://blog.csdn.net/u011505165/article/details/110817296

标签:读取,img,OpenCV,Python,cv2,python,opencv,报错
From: https://blog.csdn.net/Kratzdisteln/article/details/139545903

相关文章

  • Python学习日记Day1
    目录一、Python的安装二、输出print()1,输出单变量后换行——print(*)2,连续输出多个变量不换行——print(*,*,*,*,*)用英文逗号分离3,使用ASCII码进行输出——借助chr()函数4,使用Unicode码进行输出——借助ord()函数 5,ASCII码与Unicode码的相互转换6,使用print()函数将内......
  • Python基础操作之模块 -- pandas之groupby函数
            groupby函数是pandas库中一个非常强大的功能,它允许你根据一个或多个列的值对DataFrame或Series进行分组,并对每个组执行各种聚合操作。目录示例详解1.导入必要的库和创建DataFrame2.使用groupby函数进行分组3.遍历分组并查看内容4.对分组执行聚合操作......
  • 【python】python电影评论数据抓取分析可视化(源码+数据+课程论文)【独一无二】
    ......
  • 极简 Python:10 段代码,学会基础 python
    前言:本篇共包含10段简单的Python,涉及常用语法和常用库(但毫无疑问删减了很多,比如没有字典)任何不懂的地方可直接留言~注:如果某个地方以 “#”开始意思是:这是注释一、数据类型涉及Python中最常用的基本数据类型及其操作包括数字、字符串和列表#数字操作a=10b......
  • 我的职业生涯转型:金融到Python的跨越
    我是一位专科学历的专业人士,曾在金融行业深耕近十载。如今,我站在了人生的十字路口,面对着家庭、房贷和职业发展的多重压力。我代表了那些在大城市奋斗却难以扎根,同时在职业道路上感到迷茫的一群人。金融行业的变迁与个人觉醒在上海这座大都市,我度过了十年的金融生涯。从银......
  • 【Python】DQN处理CartPole-v1
    DQN是强化学习中的一种方法,是对Q-Learning的扩展。通过引入深度神经网络、经验回放和目标网络等技术,使得Q-Learning算法能够在高维、连续的状态空间中应用,解决了传统Q-Learning方法在这些场景下的局限性。Q-Learning可以见之前的文章。算法的几个关键点:1.深度学习估计状态动......
  • 使用Python进行容器编排【Docker Compose与Kubernetes的比较】
    ......
  • 【Python基础】集合(3997字)
    文章目录@[toc]什么是集合集合的特点元素不重复性示例无序性示例集合操作增加元素add()方法删除元素clear()方法pop()方法remove()方法交集intersection()方法&符号isdisjoint()方法并集union()方法|符号差集difference()方法-符号对称差集symmetric_difference(......
  • minos 2.3 中断虚拟化——GICv2 管理
    首发公号:Rand_cs硬件肯定需要软件配合,这一节就来实战GICv2首先准备好GICv2手册:https://developer.arm.com/documentation/ihi0048/bb/?lang=en,对于硬件的管理,最底层的操作就是读写硬件的寄存器,所以这里准备好手册,随时查阅手册//gicv2.cstaticvoid*gicv2_dbase;stat......
  • python -- series和 DataFrame增删改数据
    学习目标知道df添加新列的操作知道insert函数插入列数据知道drop函数删除df的行或列数据知道drop_duplicates函数对df或series进行数据去重知道unique函数对series进行数据去重知道apply函数的使用方法1DataFrame添加列注意:本文用到的数据集在文章顶部1.1......