当前位置: 首页 > 知识库问答 >
问题:

如何在Python中阅读16Uint图像

桂坚
2023-03-14

我有一个医疗16未签名的jpeg图像,我需要在python中读取它。这些图像只能用mathlab来读取,我的项目需要读取它的实际像素值,并且需要在该值中进行一些数学运算。你可以找到以下链接中的图像

https://drive.google.com/file/d/0B4l5GiM7kBXraDEyMXdseENfUlE/edit?usp=sharing

当我被要求在mathlab中获取图像信息时,下面的描述就来了。

i = imfinfo('di.jpg')

i = 

       Filename: [1x56 char]
    FileModDate: '14-Jul-2014 15:22:13'
       FileSize: 1044064
         Format: 'jpg'
  FormatVersion: ''
          Width: 1024
         Height: 1024
       BitDepth: 16
      ColorType: 'grayscale'
FormatSignature: ''
NumberOfSamples: 1
   CodingMethod: 'Huffman'
  CodingProcess: 'Lossless'
        Comment: {'Created by AccuSoft Corp.'}

我已经使用matplotlib,opencv,cikitImage,sippy,medpy,PIL库在python中读取此图像。我无法在这些类型中读取此图像。

当我在python中使用时,下面的错误代码即将出现:import Image img=Image。打开('di.jpg')打印(img)

raise IOError("cannot identify image file")
IOError: cannot identify image file

请帮我解决问题

共有1个答案

章心水
2023-03-14

这似乎与我们在python中读取16个无符号整数(16 uint)jpeg文件的方式完全相同

我看了一下你的照片https://drive.google.com/file/d/0B4l5GiM7kBXraDEyMXdseENfUlE/edit?usp=sharing。很明显,这是一幅采用哈夫曼编码的16位灰度无损JPEG图像。然而,对于无损编码,至少有:

  • JPEG无损(罕见、陈旧)

有关这些的更多信息,请参阅:http://en.wikipedia.org/wiki/Lossless_JPEG

cel在注释中提到的GDCM库使用CharLS库读取JPEG-LS。这个库确实有Python绑定,但不幸的是拒绝加载图像,因为它不是JPEG-LS文件。(但是,YMMV,请参阅下面的malat的评论。)

我还试图查询ImageMagick标识,它提供了更多的信息:

identify.im6: Unsupported JPEG process: SOF type 0xc3 `/tmp/di.jpg' @ error/jpeg.c/JPEGErrorHandler/316.

现在SOF类型在JPEG中很重要。错误消息表明有问题的文件是一个“JPEG无损”文件。(这可以通过它使用霍夫曼编码的事实来推断。)令人讨厌的是,这种类型文件中使用的编码方案与标准JPEG完全不同,标准JPEG库不支持它。

似乎至少有两个开源库支持文件格式:

  • IJG的JPEG库版本6b(旧!)用特殊的补丁修补

我尝试了后者,它的命令行工具确实识别了该文件并将其解码为更有用的文件(灰度PPM文件)。

因此,这至少提供了一种路线。您必须编译和安装库,然后为它创建必要的Python绑定。或者,您可以使用命令行工具作为外部转换工具,并使用它们运行,例如,子进程。最佳方法取决于您的平台。

 类似资料:
  • 我想知道如何搜索内容从图像和PDF在户外使用OCR集成请让我知道的步骤我怎么能做到这一点??使用Kofax或EpheSoft扫描软件...让我知道步骤... 我尝试了https://docs.alfresco.com/4.1/tasks/kofax-amp-install.html链接,但未能安装放大器文件。.例如:内容是从图像或pdf搜索如何可能? 请帮帮我。。 提前谢谢

  • 请问代码中的 metadatas["auth"] 是什么..

  • 如何用Python阅读pdf?我知道一种将其转换为文本的方法,但我想直接从PDF阅读内容。 谁能解释一下python中的哪个模块最适合pdf提取

  • 欢迎来到Go的世界,让我们开始探索吧! Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。 Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对

  • 问题内容: 我正在使用PIL。如何将图片的EXIF数据转换为字典? 问题答案: 您可以使用PIL映像的受保护方法。 这应该给您一个由EXIF数字标签索引的字典。如果您希望字典由实际的EXIF标记名称字符串索引,请尝试以下操作:

  • 问题内容: 我遇到一个错误 解决方案是使用UTF-8读写文件。 我的代码是: 我正在读取一个URL并将其写入文件 DirectionResponse.xml中 。然后读取 DirectionResponse.xml 并编写与 ppre_DirecionResponse.xml 相同的内容进行处理。 我该如何更改以便在UTF-8中完成读写? 问题答案: 首先,您需要调用(或至少在重新打开文件进行输入