• opencv读取路径中包含中文的图片失败的解决办法


    原因:

    cv2只能读取英文路径,中文路径会报错,这里需要numpy来对中文路径的图片进行解码处理,之后就可以打开图片。

    解决方法:
    先不直接读取图片,而是采用numpy中的fromfile读取文件,将图片按照int类型读入数据,读入的是一维数组,然后通过cv中imdecode来对数组解码得到图片,imdecode函数的作用是从内存缓冲区中读取图像,如果缓冲区太短或包含无效数据时,函数返回一个空矩阵(Mat::data==NULL)。

    如果是彩色图像,解码后的图像将按照B G R顺序存储通道。这函数有两个参数imdecode(buf,flags),buf是输入数组或字节向量,flags 与cv::imread相同的flag,

    cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1
    cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0
    cv2.IMREAD_UNCHANGED:包括alpha,可以直接写-1

    代码范例如下:

    import cv2
    import numpy as np
    
    img = cv2.imdecode(np.fromfile("E:壁纸壁纸code.jpg", dtype=np.uint8), 1)   # 可读取中文路径图片
    cv2.imshow("code", img)   # 展示图片时窗口名称
    cv2.waitKey(0)   # 图像展示时间,单位:毫秒(ms)


    ————————————————
    版权声明:本文为CSDN博主「不呐呐.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_47183158/article/details/108102002

  • 相关阅读:
    POJ-3468 A Simple Problem with Integers(线段树、段变化+段查询、模板)
    CSUOJ-1978 LXX的图论题(最短路、Bellman-Ford判断负圈)
    CSU-1975 机器人搬重物(BFS)
    POJ-3522 Slim Span(最小生成树)
    POJ-1733 Parity game (并查集)
    libmysqlclient.so.16未找到方法
    python 不同目录间的模块调用
    python模块详解 logging
    python模块详解 re
    python模块详解 hashlib
  • 原文地址:https://www.cnblogs.com/peter-jun/p/14870367.html
Copyright © 2020-2023  润新知