问题标签 [jpeg2000]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
529 浏览

c - 使用 JasPer 库的 JPEG2000 透明度

我正在尝试使用JasPer JPEG2000 库来创建透明的 JPEG2000 图像(实际上我正在创建 JPC)。

我遇到的问题是我不知道如何让 JasPer 创建透明图像。它支持的格式都不支持透明度(JPEG2000 格式除外,这是我正在尝试创建的格式):

在 JasPer 文档中,它在此上下文中使用了一次“透明度”一词:

RGBA(即具有透明度的 RGB)图像将具有四个分量,一个分量与红色、绿色、蓝色和 alpha 平面中的每一个相关联。不需要以相同的分辨率对各种组件进行采样。换言之,不同的组件可能具有不同的采样周期。例如,当在亮度-色度颜色空间中表示彩色图像时,亮度信息比色度信息更精细地采样的情况并不少见。

这意味着支持透明度,因为它正在讨论透明度在编码中的工作方式。然而......如何使用它?

有任何想法吗?

此外,任何其他支持创建透明 JPC 的开源替代方案都会很好。

谢谢。

0 投票
1 回答
1922 浏览

java - 如何在java中将jp2图像读入BufferedImage

我想将 jp2 图像读入 java 中的 BufferedImage。我安装了 Java Advanced Imaging JAI。这是我的代码:

但是,我收到以下错误:

我不明白为什么 JAI 库无法读取 jp2 图像,尽管此操作对于 bmp 图像是可行的..

请问有什么提示吗???

0 投票
1 回答
84 浏览

firefox - Firefox 插件不加载数据?

我有一些 JPEG2000 图像我想在网络上提供。我打算使用 LizardTech ExpressView 浏览器插件来执行此操作。(位于http://www.lizardtech.com/downloads/category/#plugins。)它们提供了一些说明,包括在 IE 和 Firefox 中显示插件所需的 HTML。它适用于 IE,但不适用于 Firefox;在那里,下面的 HTML 只显示了没有加载图像的 ExpressView 插件。

我的理解是,外部对象定义是 IE 使用的,内部对象定义是 Firefox 使用的。我不知道这是否有帮助,但是当我在加载页面时查看 Firefox 开发人员工具中的网络选项卡时,它确实请求了relax.jp2,但由于某种原因它显然返回了零字节。有谁知道正确的语法是什么?如果用户没有插件,我最终还想包含一个下载插件的链接,但我认为这并不难。谢谢!

编辑:清理代码粘贴;对于那个很抱歉。

0 投票
0 回答
687 浏览

javascript - 在 Cesium 中实现渐进式渲染层

我正在尝试实现一个显示服务器发送的栅格数据的图层。服务器协议发送的数据在广泛使用的浏览器中没有内置支持(这是一个jpeg2000数据)。因此,我正在自己解码数据并让它给 Cesium 显示。

是什么让它有点复杂:

  1. 服务器是有状态的,因此客户端和服务器都应该维护一个通道。该通道与单个感兴趣区域相关联。区域可能会随着时间而改变,但在每个时间点,只有一个区域供服务器在通道上发送数据。我可以在会话中使用一些频道,但是服务器在频道数量非常少的情况下表现不佳。

  2. 感兴趣的区域具有统一的分辨率(因此对于 3D 来说是有问题的)。

  3. 服务器支持逐步发送数据逐渐提高质量(jpeg2000 中的“质量层”),由于可用的网络资源非常少,我想使用这个属性。

  4. 就 CPU 时间而言,解码很繁重。

作为第一阶段,我实现了一个 ImageryProvider,它只是为渲染引擎请求的每个图块创建一个通道。它工作但创建了太多的连接,我不喜欢渐进式渲染。此外,性能很差,这个问题几乎可以通过实施优先机制来解决,该机制首先在 Cesium 查看器的视图区域中解码图块。

接下来我实现了一个自渲染光栅“层”,它根据视图区域改变通道的感兴趣区域。然后多通道问题得到解决,我享受渐进式渲染。但是我遇到了以下问题:

一个。我用来显示解码像素的方法是实现一个图像提供程序,它显示带有解码像素的单个 Canvas。每次更新图像(重新定位或逐步解码)时,我都必须删除旧的图像提供程序并用新的图像提供程序替换它。我想这不是做这些事情的正确方法,它可能会导致一些不良行为,例如在用新的提供者替换旧提供者时出现错误的 z 顺序等。其中一些问题可以通过使用带有图像材料的原语来解决,但是我必须使用图像的数据 URL 形式。这样做会降低性能,因为它会导致大量从画布到数据 URL 的转换。

湾。我必须编写特殊代码来理解视图区域,以便将其发送到服务器(使用 pickEllipsoid 和类似功能)。我猜这段代码是在 Cesium 引擎中完成的东西的重复。此外,我在一些讨论中看到 2D 不支持 pickEllipsoid。一般来说,我很高兴有一个为我计算视图区域的函数,而不是自己实现该代码。

C。我实现它的方式引发了一个 API 问题:与添加和删除图像提供程序(addImageryProvider() 方法和 removeLayer() )的 Cesium 的漂亮 API 不同,在我的实现中,用户只需要使用我向他公开的方法(例如,接受 Viewer 作为参数的方法 add())。

d。在 3D 模式下,当分辨率不均匀时,图像在近距离区域不清晰。我知道这是一个固有的问题,因为我的服务器的工作方式,只是指出来。

我认为我在这里真正缺少的是一种实现插件的方法,它比 ImageryProvider 的接口更强大:实现一个自渲染光栅层,它从渲染引擎接收视图区域更改事件,并可以决定何时以及如何刷新它的瓷砖。另一种选择(这对我来说甚至更好,但我猜其他人不太可重用)是将视图区域中的图块列表公开给 ImageryProvider 实现。

应对这种情况的正确方法是什么?

0 投票
0 回答
340 浏览

c++ - 如何截断 JPEG 2000 文件流?

我正在尝试从 JPEG 2000 文件流中提取质量层,该文件流包含在 .j2k 文件中以进行测试。我试图这样做是为了学习如何传输文件流,并最终对其执行感兴趣区域 (ROI) 选择。我想在不解码的情况下做这些事情,现在我唯一的实用程序是 OpenJPEG 库。

我使用 image_to_j2k 实用程序 (linux) 将测试图像转换为包含在 .j2k 文件中的文件流。然后我以二进制模式将 .j2k 文件读入缓冲区:

写入 out2 和 out3 文件的字节数不是随机选择的 - 它们来自 OpenJPEG 在压缩时制作的索引文件。我的想法是,如果我从头开始读取文件并读取到某个点,索引文件告诉我有一个“end_pos”标记对应于质量层的结尾,我会模拟一个未完成的无线传输文件 - 这是最终目标,将文件无线传输到森林中,并在森林中其他地方的手持设备或笔记本电脑上以越来越好的质量显示图像。尝试在 out2.j2k 和 out3.j2k 文件上使用 j2k_to_image 的结果是:

我会以完全错误的方式解决这个问题吗?不使用 JPEG 2000 是不可能的。感谢您提供任何答案,我确实浏览了有关此内容的文档,但找不到此详细信息。

0 投票
3 回答
723 浏览

java - Android:从输入流定义图像类型(jpeg 或 jpeg2000)

我有一个包含图像的输入流。图像可以是jpeg,所以是jpeg2000格式。我已经记录了该流并查看下一个jpeg2000

为此jpeg,它就像

据我了解,流中应该有一些魔术字节,它们将返回图像类型。任何想法如何获得它们?那应该与Android兼容

0 投票
1 回答
1738 浏览

python - python jpeg2000 压缩与 glymur

任何熟悉 glymur 模块的人?

我想用这个模块生成不同的jp2k类型的失真图像,但是我真的不知道如何应用这个模块,我找到了glymur的代码官方页面,

https://glymur.readthedocs.org/en/release-0.7.3/how_do_i.html#read-images

但似乎引发了错误。

谁能给我看一段从“D:/1.jp2”读取jp2文件并将其保存到“D:/2.jp2”的代码?

0 投票
0 回答
276 浏览

python - 如何在python中生成具有不同压缩比的jp2k失真图像

我现在正在使用 glymur 包。有什么方法可以控制生成的不同压缩比的图像吗?

我想我需要在后面添加一些参数numres,但结果是相同的图像,也许我numres的无效。任何人都可以帮助解决这个问题或应用其他方法吗?

0 投票
1 回答
234 浏览

liferay - 在 Tomcat 中读取的 J2K 不起作用

我面临在我的 java 应用程序中加载J2K 图像文件(jp2、jp2000)的问题。奇怪的是,当应用程序作为独立的 java 应用程序(或在测试中)运行时,它运行正确(文件从磁盘成功读取)。

在 Tomcat 应用服务器上部署后,ImageIO.read(..)方法每次都返回 null。

任何帮助都会得到帮助。

西蒙

0 投票
0 回答
166 浏览

image-processing - 我想写 .j2c 文件

使用 FreeImage,我想为 DCINEMA 创建一个 j2c 文件并对其进行测试,但是,结果文件与 j2c 不兼容。

IfanView(图像软件)说“result.j2c”是一个扩展名不正确的 jp2 文件,并将其从 result.j2c 重命名为 result.jp2。

我不明白如何创建 j2c 文件。

我的代码如下:

我应该怎么办?