-Thomas杨- 2023-03-07 13:22 采纳率: 50%
浏览 39
已结题

python的三方库pylibtiff不支持打开中文路径的图片怎么办

python的三方库pylibtiff不支持打开中文路径的图片怎么办
在使用open指令打开图片的时候路径里边的中文乱码,路径没有中文的时候可以正常打开文件。

img


网上查好像opencv库打开图片也会有这个问题,解决方法基本上都是先用numpy载入到内存在打开,
但是pylibtiff好像不支持这样做
我看了三方库的源码使用的是ascii编码 改成utf-8后一样会报错 怎么修改才能解决这个问题
以下是pylibtiff库的open函数

    def open(cls, filename, mode='r'):
        """ Open tiff file as TIFF.
        """
        try:
            try:
                # Python3: it needs bytes for the arguments of type "c_char_p"
                filename = os.fsencode(filename)  # no-op if already bytes
            except AttributeError:
                # Python2: it needs str for the arguments of type "c_char_p"
                if isinstance(filename, unicode):  # noqa: F821
                    filename = filename.encode(sys.getfilesystemencoding())
        except Exception as ex:
            # It's probably going to not work, but let it try
            print('Warning: filename argument is of wrong type or encoding: %s'
                  % ex)

        tiff = libtiff.TIFFOpen(filename, mode.encode('ascii'))
        if tiff.value is None:
            raise TypeError('Failed to open file ' + repr(filename))
        return tiff

  • 写回答

2条回答 默认 最新

  • shifenglv 2023-03-07 13:31
    关注

    numpy支持中文路径,你先把图片用numpy以二进制读取进去,让后用open cv去解码,具体操作你可以搜一下。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月19日
  • 创建了问题 3月7日

悬赏问题

  • ¥15 C#连接不上服务器,
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来