opencv的cv2.imread解决中文路径问题

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

cv2.imread()读取不了中文路径,但是cv2.imdecode可以解码

def readimg(filename, mode=-1):
    # 解决中文路径问题
    raw_data = np.fromfile(filename, dtype=np.uint8)
    img = cv2.imdecode(raw_data, mode)
    return img

拓展:

cv2.imdecode(…)/cv2.imencode(…)传入参数为包含图像文件内容的内存buffer,为整个文件的内容,包含格式说明、图像数据等等,并非只有图像像素数据。
语法如下:
<1> imdecode(buf, flags)
       buf: 包含图像文件的buffer
       flags: 以何种形式解析图像,与cv2.imread(filename[, flags])中参数一致
       返回值: 数据类型为numpy.ndarray的图像,与cv2.imread(filename[, flags])中参数一致
<2> imencode(ext, img[, params])
       ext: 图像后缀,".bmp"、".jpg"等cv2模块支持的图像格式
       img: 数据类型为numpy.ndarray的图像,shape为height× \times× width× \times×channel
       params: 图像保存时的参数,与cv2.imwrite(filename, img[, params])中参数一致
       返回值: 保存成功时返回长度为2的tuple,第一个元素与cv2.imwrite(…)函数返回值相同,第二个元素为数据类型为numpy.ndarray类型的图像文件内容
 

In [1]: import cv2
In [2]: import numpy as np

# cv2.imdecode(...)
In [3]: img = cv2.imdecode(np.fromfile("C:\\img.bmp", np.uint8), 1)
In [4]: type(img), img.shape
Out[4]: (numpy.ndarray, (331, 500, 3))

# cv2.imencode(...)
In [5]: res = cv2.imencode(".jpg", img)
In [6]: type(res), len(res)		In [7]: res[0], type(res[1])
Out[6]: (tuple, 2)				Out[7]: (True, numpy.ndarray)

In [8]: res[1].shape
Out[8]: (53585, 1)   # 331*500*3 = 496500
					 # res[1]表示将图像保存为".jpg"文件时,"
					 # .jpg"文件应该对应的所有内容,数据为np.uint8
# 将res[1]保存到硬盘
res[1].tofile("C:\\out.jpg")

利用编码和解码可以实现不同格式图像的相互转换,bmp/jpg/jpeg/png文章来源地址https://www.toymoban.com/news/detail-848538.html

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

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

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

相关文章

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

    随着AI人工智能的不断发展,图像处理这门技术也越来越重要,很多学校本科都开启了图像处理这门课程,学习图像处理开发,自然就绕不开opencv-python[ cv2 ]这个由intel主导的开源库。 cv2 是指OpenCV的Python接口库。 OpenCV (Open Source Computer Vision Library)是一个开源的计算机视觉库

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

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

    2024年02月05日
    浏览(72)
  • python 图像处理——关于plt.imshow显示cv2.imread读取的图像有“色差”、“发蓝”问题的解决方法

    使用cv2.imread()读取图像时,默认彩色图像的三通道顺序为B、G、R,这与我们所熟知的RGB中的R通道和B通道正好互换位置了。 而使用plt.imshow()函数却默认显示图像的通道顺序为R、G、B,导致图像出现色差发蓝。 彩色图像出现色差代码: 运行结果如图1-1所示,其颜色偏蓝,怪吓

    2024年02月01日
    浏览(44)
  • 解决opencv, cv2.puttext函数无法显示中文字符

    背景: opencv内置的cv2.puttext函数不能显示中文字符,尝试了下列方法: (1)cv2.freetype。没有这个库; (2)opencv无法导入中文字体库; (3)卸载opencv-python,安装opencv-python-headless, opencv- contrib-python 方法: 使用PIL库作为中转 下载中文字体库https://github.com/StellarCN/scp_zh/blob/master/fonts/S

    2024年02月13日
    浏览(44)
  • opencv cv2.imread()报错: error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor‘

    问题: pycharm中使用opencv , 执行cv2.imread(filepath)读取图片时报错: cv2.error: OpenCV(4.7.0) D:aopencv-pythonopencv-pythonopencvmodulesimgprocsrccolor.cpp:182: error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor’ 解决方案: 尝试以下几种方法: 1.查图片路径中是否有中文,尽量不要含中

    2024年02月13日
    浏览(57)
  • 解决opencv / cv2 没有代码提示的问题

    在pycharm中初次使用cv2这个包时一般会遇到没有代码提示的问题。 直接 import cv2 ,在调用函数时是没有代码提示的。 有的文章说应该: from cv2 import cv2 as cv ,但是这样有可能会报错说 在__init__.py 中找不到引用cv2, 或者 import cv2.cv2 as cv ,报错为 没有名为cv2的模块 还有可能是

    2024年02月06日
    浏览(53)
  • 解决opencv中使用cv2.imshow不显示图片问题

    在使用opencv中的cv2.imshow显示图片的时候总会出现如下错误: The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function ‘cvShowImage’ 查找了很多资料发现是在安装opencv的时

    2024年02月07日
    浏览(44)
  • 【cv2.imread】与【cv2.imdecode】用法

    对于路径中含有中文的图像,直接用cv2.imread读取会报错,上次看到有大佬使用cv2.imdecode就可以正常读取,有点好奇,所以今天来记录下二者用法和区别。 目录  1.读取图像的两种方式对比  2.保存图像的两种方式对比   cv2.imread正常读取影像 运行上述代码,会 报错! cv2.imd

    2024年02月02日
    浏览(48)
  • 解决python调用opencv时出现cannot find reference ‘imread‘ in __init__ 即cv.imread 未定义引用

    今天终于找到调用cv2未解析的解决办法了,几乎是把全网大多数方式都试了下,总的来说大致有三种原因: 一个是版本不匹配,python的版本和库文件的需求有出入导致无法使用。 一个是不同版本不兼容,下载过多个python版本可能导致这个问题 。 一个是路径设置,这可能不

    2024年02月08日
    浏览(60)
  • Pycharm中opencv/cv2无代码提示问题

    在Pycharm中配置opencv环境是碰到这样import cv2 后输入cv2.后无代码提示并且按住Ctrl + 鼠标左键后无法进入cv2函数的问题。之后我在网上找了许多博客,也试了许多方法,经过几次试验,发现在将cv2文件夹中的cv2.pyd文件放到cv2下的data文件夹中,即可解决问题。原理如此篇文章所示

    2024年02月11日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包