似乎.NET无法使用GDI库打开JP2(Jpeg 2000)文件.我在谷歌搜索但找不到任何库或示例代码来执行此操作.
有人有任何想法吗?除非我必须,否则我真的不想为图书馆付费.
我正在使用带有FileApi的HTML5技术.
我的问题很简单,但我在2天前搜索,我在网上找不到任何东西
我有一个DicomFile.我使用HTML5中的FileApi将其分解,并获取所有信息.最后,我得到一个字节数组中的图像数据.问题是我无法解码JPEG2000图像并在浏览器中显示它(Chrome,FireFox,任何).例如,如果图像数据以JPEG格式编码,我在浏览器中显示图像完全没有问题,但问题在于JPEG2000或JPEG-LS.我知道那些图像格式无法在网页浏览器中显示,但它必须在Javascript中存在一个库来解码JPEG2000或JPEG-LS中的图像数据.这非常重要,我有点贬低.
如果我找不到任何办法,我将不得不改变我的所有工作.
非常感谢你提前
我正在尝试阅读并平铺jp2图像文件.图像是RGB 98176 x 80656像素(它是医学图像数据).
当试图用glymur读取图像时,我收到此错误:
glymur.lib.openjp2.OpenJPEGLibraryError: OpenJPEG library error: Prevent buffer overflow (x1: 80656, y1: 98176)
Run Code Online (Sandbox Code Playgroud)
我明白图像太大了.我需要的是通过图块读取图像数据并将其保存在其他地方并以其他格式保存.
Glymur允许我使用python读取头,例如,代码流是:
>>> print(codestream.segment[1])
SIZ marker segment @ (87, 47)
Profile: no profile
Reference Grid Height, Width: (98176 x 80656)
Vertical, Horizontal Reference Grid Offset: (0 x 0)
Reference Tile Height, Width: (832 x 1136)
Vertical, Horizontal Reference Tile Offset: (0 x 0)
Bitdepth: (8, 8, 8)
Signed: (False, False, False)
Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1))
Run Code Online (Sandbox Code Playgroud)
平铺不起作用,read方法不起作用.
编辑:
我也试过Scipy能够读取标题,但同样的事情,出现的错误是:
>>> …
Run Code Online (Sandbox Code Playgroud) 我已经看到JPEG2000文件同时具有.J2K和.JP2扩展名,而读取一个的编解码器并不总能读取另一个.有人可以解释为什么我认为是单一格式有多个扩展吗?
我有一个使用byte []的代码,其中包含一个图像jpeg2000字节.我想在jLabel组件中显示如何做到这一点?有人有想法或代码吗?
我目前正在深入研究Wavelets并对某些事情感到有些困惑.
首先,这不是功课.它仅用于娱乐编码.
为了更好地理解,我在C中实现了LeGal 5/3小波的提升方案.据我所知,它似乎有效.我可以反转它并正确再现原始图像.在伪代码中,我的前进dwt看起来像这样:
// deinterleave splits the low band from the high band
// (e.g. 1 0 3 0 6 0 8 1 11 becomes 1 3 6 8 11 | 0 0 0 1)
for each row in image:
dwt1d(row)
deinterleave(row)
for each col in image:
dwt1d(col)
deinterleave(col)
Run Code Online (Sandbox Code Playgroud)
但我很挣扎.
当应用dwt时,我得到了我的变换图像,但值超出了范围[0 - 255].因此我将它们存放在短裤中.有些是负面的,有些是非常大的.现在我如何显示它们以获得如下所示的那些漂亮的图像:(http://www.whydomath.org/node/wavlets/images/Largetoplevelwt.gif)?如果我使用imshow(image,[])在Matlab中显示我的图像,那么我的输出如下所示:http://i.imgur.com/dNaYwEE.jpg.那么,我是否必须对子频段进行一些转换?如果是,有人可以指出我的解决方案或告诉我该怎么做?
在文献中,我有时看到子带是这样排序的:[LL LH; HL HH],有时也像这样:[LL HL; LH HH].后者,我看到的主要是当论文是关于JPEG2000时,也是我的算法产生的.但是在Matlab中,当使用lwt2函数时,它返回前一个布局.当我将输出与Matlab的输出进行比较时,我也看到了这一点.似乎LH和HL混在一起.怎么可能?有关系吗?是否必须使用提升而不是卷积来做某事?
如果先行然后是列,反之亦然,这实际上是否重要?我在切换订单时看到输出没有区别.唯一不同的是LH变为HL而HL变为LH.但是,这并不能解决我的第二个问题,因为输出是相同的.我猜它只是符号.那重要吗?我看到他们在那里做文章和他们做排队的其他人.两者都与JPEG2000有关.
非常感谢.如果有人能对我的问题有所了解,那么我将非常感激.
亲切的问候,马库斯
我编写了使用专有SDK压缩和解压缩图像文件的代码,用于通过卫星从飞机传输.不幸的是,必须购买许可证才能进行解压缩和压缩.到目前为止,我的应用程序主要用于内部,因此我可以跟踪许可证和分发.现在我需要为外人提供应用程序,我既不能控制分发也不能支付许可证.
有谁知道免费的解压缩程序,SDK或库?我使用C++编写Windows NT,2000,XP.
我的图像文件是原始数据,单色,具有16位无符号像素,并且使用的压缩是无损或非常轻微的有损.
使用PDFBox 2.0.4将页面提取为图像,我的结果页面包含多个"黑洞",如下面的屏幕所示:
这种情况仅发生在这个PDF和其他几个:http://www.filedropper.com/selection_3
这是一个简单的代码(使用JavaFX)来重现问题(下载PDF后更改文件路径):
public class PDFExtractionTest extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
FileInputStream inputStream = new FileInputStream(new File("C:\\Users\\John\\Desktop\\selection.pdf"));
PDDocument document = PDDocument.load(inputStream);
PDFRenderer pdfRenderer = new PDFRenderer(document);
BufferedImage bufferedImage = pdfRenderer.renderImage(1);
Image fxImage = SwingFXUtils.toFXImage(bufferedImage, null);
BorderPane borderPane = new BorderPane();
ImageView imageView = new ImageView(fxImage);
borderPane.setCenter(imageView);
primaryStage.setScene(new Scene(borderPane, 1024, 768));
primaryStage.show();
}
public static void main(String[] args) throws FileNotFoundException {
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的依赖项:
我有一个类,它使用 GDAL 模块(https://pypi.org/project/GDAL/)打开一个大的光栅图像,并在多个位置从中提取小图像,由传递的坐标元组列表定义。我想使用 Pathos 处理大量坐标,就像我的代码的这个简化版本:
import gdal
import pathos.pools as pp
class MyClass:
def __init__(self, image):
self.image_object = gdal.Open(image)
def get_small_image(self, coord, size=100):
small_image = self.image_object.ReadAsArray(coord[0], coord[1], size, size)
return small_image
def run_multi(self, coords_in):
pool = pp.ProcessPool(2)
output = pool.map(self.get_small_image, coords_in)
return output
image = r'C:\path\to\image.JP2'
class_obj = MyClass(image)
coords = [(200, 200), (400, 400), (600, 600), (800, 800)]
results = class_obj.run_multi(coords)
print(results)
Run Code Online (Sandbox Code Playgroud)
运行它会出现以下错误:
Traceback (most recent call last):
File "C:/Users/lharris/PycharmProjects/road_condition_py3/error_recreate.py", line 26, in <module>
results = class_obj.run_multi(coords) …
Run Code Online (Sandbox Code Playgroud)