opencv-python[cv2]读取中文路径图像

这篇具有很好参考价值的文章主要介绍了opencv-python[cv2]读取中文路径图像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

随着AI人工智能的不断发展,图像处理这门技术也越来越重要,很多学校本科都开启了图像处理这门课程,学习图像处理开发,自然就绕不开opencv-python[cv2]这个由intel主导的开源库。

1. cv2是什么?

cv2是指OpenCV的Python接口库。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。cv2库是OpenCV的官方Python接口,使得开发者可以使用Python语言调用OpenCV库中的各种函数和功能。cv2库提供了各种图像处理和计算机视觉的功能,包括图像读取和保存、图像的变换和滤波、边缘检测、特征提取、目标检测、图像识别等。通过cv2库,开发者可以使用Python编写简洁而强大的图像处理和计算机视觉应用程序。

2. 问题描述

很多刚刚学习opencv的学生在使用python的opencv-python[cv2]的时候,会碰到过读取中文路径的图片失败的问题,明明图像文件是存在的,但是程序死活运行失败,根本原因是 cv2.imread并不支持中文路径导致的。

1.1 问题复现

首先,图像文件路径下面确实存在一张’'小猫小狗.jpg",如下图所示.
cv2读取中文路径,OpenCV,opencv,python,计算机视觉
代码如下(直接调用cv.imread):

import cv2

image_file_name= './图像/小猫小狗.jpg'
image_numpy_data = cv2.imread(image_file_name)

cv2.imshow('显示图像', image_numpy_data)

cv2.waitKey(0)

当我们配置好python环境,运行main.py时,出现如下错误提示.

cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:356: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

这个错误是告诉开发者图像文件为None,如果新同学不知道如何配置环境,可以参考博主写的【Anaconda3与PyCharm安装配置保姆教程】

1.2 问题修复

既然cv2.imread无法直接读取,那我们可以通过numpy来间接读取,博主这边给一个修复后的代码供大家参考

import cv2
import numpy as np

# 通过numpy读取中文路径图像
def image_read_from_chinese_path(image_file_name):
    image_numpy_data = cv2.imdecode(np.fromfile(image_file_name, dtype=np.uint8), -1)
    #返回numpy的ndarray
    return image_numpy_data

image_file_name = './图像/小猫小狗.jpg'
image_numpy_data = image_read_from_chinese_path(image_file_name)

cv2.imshow('image', image_numpy_data)
cv2.waitKey(0)

再次运行,imshow成功显示图像
cv2读取中文路径,OpenCV,opencv,python,计算机视觉

1.3 总结

本文的解决思路是通过numpy库,np.fromfile()函数用于读取图像文件的原始数据,并将其存储在NumPy数组中。然后,使用cv2.imdecode()函数将NumPy数组解码为OpenCV格式的图像数据。

通过使用numpy库,可以避免cv2.imread()函数对中文路径的限制,并成功读取包含中文字符的图像文件。

结束语

由于博主能力有限,本篇文章中提及的方法,也难免会有疏漏之处,希望您能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。文章来源地址https://www.toymoban.com/news/detail-737554.html

到了这里,关于opencv-python[cv2]读取中文路径图像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用opencv-python(cv2)库进行相机标定

    2023年09月11日
    浏览(53)
  • Python cv2 opencv-python opencv-contrib-python 安装

    老规矩,话不多说,上代码! pip install opencv-python(如果只用主模块,则使用这个命令安装【推荐】) pip install opencv-contrib-python(如果需要用到 contrib 模块,则使用这个命令【本次因自己没有使用 contrib 模块,所以没有尝试】) 首先,讲一下 cv2 这个模块是 opencv 的,所以安

    2024年02月11日
    浏览(47)
  • Python中使用OpenCV读取灰度图像时遇到的错误:module ‘cv2‘ has no attribute ‘CV_LOAD_IMAGE_GRAYSCA...

    Python中使用OpenCV读取灰度图像时遇到的错误:module ‘cv2’ has no attribute ‘CV_LOAD_IMAGE_GRAYSCALE’。 OpenCV是一款广泛应用于计算机视觉领域的开源计算机视觉库,它可以实现图像处理、分析、识别等功能。而在使用OpenCV读取灰度图像时,可能会出现上述错误。 这个错误发生的原

    2024年02月16日
    浏览(60)
  • 使用OpenCV的cv2.imread函数读取图像介绍

    在计算机视觉和图像处理应用中,读取图像是一个常见的操作。OpenCV是一个广泛使用的图像处理库,它提供了 cv2.imread 函数,用于读取图像。本文将详细介绍如何使用 cv2.imread 函数,包括参数和用法。 首先,确保你已经安装了OpenCV库。你可以使用以下命令来安装OpenCV(如果尚

    2024年02月05日
    浏览(72)
  • 【Python入门教程】CV2报错:cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\s

             OpenCV作为一个强大计算机视觉库被各个领域广泛应用,今天分享下自己编程遇到的报错信息以及解决办法。         这里包含了一个警告和一个报错信息。          警告信息: OpenCV库在处理TIFF图像时遇到的问题有关。从警告信息来看,你的TIFF图像可能使

    2024年02月08日
    浏览(50)
  • cv2.VideoCapture使用,opencv读取摄像头,视频图像

            cv2.VideoCapture()用于读取视频,也可以用于读取摄像头图像。         上面的2种写法,第一种表示读取摄像头,第二种读取视频文件,返回值就是视频数据。         在读取到视频后,可以使用isOpened方法来判断视频是否能够打开,能打开返回True,不能够打

    2024年02月12日
    浏览(79)
  • 【跟官网学opencv-python】笔记1.3:opencv鼠标绘图 cv2.setMouseCallback()

    目录 前言 目标 函数详解 1、cv2.setMouseCallback()鼠标回调函数 2、鼠标事件简介 代码演示 ​编辑 应用演示 运行效果 参考 跟着官网学习才是基础入门的最佳选择,下文是opencv-python官网的学习记录及扩展! 学习函数cv2.setMouseCallback()并使用鼠标绘制不同图形(矩形、多边形等)

    2024年02月03日
    浏览(78)
  • opencv-python 已安装,但是import cv2仍旧失败的原因

    在终端和cmd中输入以下命令pip install opencv-python 都会显示opencv-python已安装 注:用 pip install cv2安装会显示报错 大部分安装失败的原因都是安装命令输入错误  其实是解释器的问题 更换已安装opencv的解释器即可解决问题 本项目使用的解释器位置如图所示:   已安装opencv的解释

    2024年02月11日
    浏览(49)
  • opencv-python库 cv2 图形绘制 cv2.line()cv2.rectangle()cv2.circle()cv2.ellipse()cv2.polylines()cv2.putText

    cv2.line() 是 OpenCV 中的一个函数,用于在图像上绘制直线。这个函数需要指定图像、线的起点和终点坐标、线的颜色、线的宽度以及线的类型。 下面是 cv2.line() 函数的详细参数说明: 参数解释: 下面是一个使用 cv2.line() 绘制直线的简单示例: 在这个例子中,我们创建了一个

    2024年04月23日
    浏览(46)
  • 关于opencv中cv2.imread函数读取的图像shape问题

    图像坐标系是(w,h),w为x轴,h为y轴,(x,y) 但opencv读出来的数组却正好相反,是(h,w,3),(y,x,3) 所以这里会有一个转换 实则转换为图像坐标系时,要转置一下,或者image.shape[::-1] 切片操作 [start,endstep],其中:- start: 表示开始的下标,如果省略默认为 0 - end: 表示结束的下标(不包含

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包