标签: image-compression

内存中numpy数组(图像,uint8)的有损压缩

我正在尝试将 1.000.000 张图像的数据集加载到内存中。作为标准的 numpy 数组 (uint8),所有图像组合填充了大约 100 GB 的 RAM,但我需要将其降低到 < 50 GB,同时仍然能够快速将图像读回 numpy(这就是将所有内容保留在内存中的重点)。像 blosc 这样的无损压缩只会减少大约 10% 的文件大小,所以我选择了 JPEG 压缩。最小示例:

import io
from PIL import Image

numpy_array = (255 * np.random.rand(256, 256, 3)).astype(np.uint8)
image = Image.fromarray(numpy_array)
output = io.BytesIO()
image.save(output, format='JPEG')
Run Code Online (Sandbox Code Playgroud)

在运行时,我正在阅读图像:

[np.array(Image.open(output)) for _ in range(1000)]
Run Code Online (Sandbox Code Playgroud)

JPEG 压缩非常有效(< 10 GB),但将 1000 张图像读回 numpy 数组所需的时间约为 2.3 秒,这严重影响了我的实验性能。我正在寻找可以在压缩和读取速度之间进行更好权衡的建议。

python compression performance numpy image-compression

4
推荐指数
1
解决办法
4378
查看次数

如何从 Google 文档导出 PDF,而不过度压缩页眉中的图形

为了在 Google 文档中设置信头样式布局,我们发现在标题部分放置徽标非常方便。然而,当 Google Doc 以 PDF 格式下载时,图像会被过度压缩,导致图像损失很大且不专业。

这是一个 100 像素的方形徽标图形,在 Finder、任何图形应用程序以及 Google 文档中查看时看起来很清晰。我尝试过不同的格式(PNG 为 5KB,JPG 100 为 16KB),看看这是否会改变压缩算法,但无论哪种方式看起来都很垃圾。在 Google 文档中选择“文件”>“下载为 PDF”或“打印”>“保存”并不重要。

到目前为止,一种解决方法似乎是使用大徽标图形 PNG,这似乎相当违反直觉,但看起来不错。当然,PDF 文件的大小会大得多。

有谁知道 Google Doc 对 PDF 中图形的压缩是怎么回事?这只是页眉/页脚中的图形的问题吗?除了巨型文件之外,我还应该尝试其他什么吗?谢谢你!

pdf graphics google-docs image-compression

4
推荐指数
1
解决办法
7682
查看次数

webcomics的图像压缩

可能很多人在这里我读了一些webcomics.Drowtales是我最喜欢的,但除此之外.

很长一段时间以来,我一直在唠叨我的想法:webcomics是绘制的图片.它们不是照片.应该有很多冗余(更少的颜色,更平坦的颜色区域等),因此它们应该能够以相当高的速率轻松压缩,同时仍然保持无损质量.似乎压缩它们的最佳工具似乎是旧的有损JPEG.

怎么会这样?是不是发明了更好的东西?我不是数据压缩方面的专家,所以我自己在寻找更好的算法方面的微薄尝试却毫无结果.我能找到的最好的是Pngcrush,但在压缩方面仍然落后于JPEG.

我想听听专家的意见.我的这个想法是愚蠢的,注定要失败吗?或者有没有人找到或我可以调查的方式?

当然,这来自减少加载时间的自私愿望.:)

补充:有些人似乎忽略了这一点,所以我会澄清:

Webcomic图像应该具有很多冗余,因此它们应该易于压缩.是不是可能以某种方式压缩它们,使它们既无损又小于JPEG?或者至少压缩它们比JPEG更好,同时仍然保持质量.

由于它们适用于Web,因此专用压缩器仍然可能会发出PNG或JPEG - 只需使用修改后的算法进行压缩即可获得更好的结果.

compression png jpeg image image-compression

3
推荐指数
3
解决办法
3111
查看次数

.net中的PNG压缩

我想将位图压缩到具有不同压缩级别的PNG,因为这些级别在C#中的JPEG压缩中可用.我有20到30张不同尺寸的图像,可在1秒内处理.是否有任何库可以在不同压缩级别的PNG中实现此压缩?

c# png image image-compression

3
推荐指数
1
解决办法
1万
查看次数

如何使用Imagemagick的转换工具将.tiff / .bmp转换为JPEG-XR?

我正在使用convertimagemagick 的工具将图像转换为jpeg-xr格式。

我正在debian linux(ImageMagick-6.8.6-8)下使用最新版本。

问题是convert -format jxrconvert -format wdp产生的格式与我的源图像相同,并且没有有效的jpeg-xr文件。我的-format参数错了吗?我什么都没找到

提前致谢

imagemagick image-compression jpeg-xr

3
推荐指数
1
解决办法
4033
查看次数

在Matlab中使用imfinfo函数进行图像压缩

我试图计算给定图像的压缩比.我的matlab代码如下:

temp = imfinfo('flowers.jpg'); comperssion_ratio =(temp.Width*temp.Height*temp.BitDepth)/ temp.FileSize;

imfinfo显示以下内容:

       FileSize: 11569
         Format: 'jpg'
  FormatVersion: ''
          Width: 430
         Height: 430
       BitDepth: 8
      ColorType: 'grayscale'
FormatSignature: ''
NumberOfSamples: 1
   CodingMethod: 'Huffman'
  CodingProcess: 'Sequential'
        Comment: {}
Run Code Online (Sandbox Code Playgroud)

运行上面的代码给我一个大约120的压缩比,这是巨大的,似乎并不正确.有什么我做错了吗?我浏览了麻省理工学院的一份文件,他们发现宽度和高度以及比特深度应除以8然后除以FileSize.为什么除以8?

matlab image-compression

3
推荐指数
1
解决办法
2304
查看次数

EMGU CV视频摄像师无法制作视频

我试图使用Emgu CV VideoWriter捕获视频,但它显示:

无法创建VideoWriter.确保安装了特定的编解码器

我该如何处理?
这就是我的代码:

Bitmap back = new Bitmap("jpg image path");
Image<Bgr, Byte> bg;
bg = new Image(Bgr, byte)(back);
vw = new VideoWriter("c://work//test1.mp4",CvInvoke.CV_FOURCC('M','S','V','C'), 17, 640, 480, true);
Run Code Online (Sandbox Code Playgroud)

它适用于.avi扩展,但是只有几秒钟的大小相当大,所以我想更多地压缩它.请建议代码/库的任何变通方法或更改.

c# opencv bitmap image-compression emgucv

3
推荐指数
1
解决办法
6774
查看次数

有没有办法减少PNG大小?

作为 bm.compress(Bitmap.CompressFormat.PNG, 50, out); //here 50 will not work as PNG is lossless

如何减小 .png 图像大小?也只是从 drawable 处理外部位置使文件大小增加 5 到 10 倍?

Bitmap bm=BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);

String extStorageDirectory = Environment.getExternalStorageDirectory().toString();

File file = new File(extStorageDirectory, "ic_launcher.PNG");
outStream = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
Run Code Online (Sandbox Code Playgroud)

png android image-compression

3
推荐指数
2
解决办法
6742
查看次数

使用 Windows 从 TIFF 转换为 PNG?

有没有办法使用 Windows 控制台或任何简单工具将所有 TIFF 图像转换为 PNG。我重命名了标签,但现在的问题是文件大小。压缩文件的方法有哪些?

png tiff image-compression

3
推荐指数
1
解决办法
5420
查看次数

bitmap.compress破坏图片质量

我正在使用一个应用程序来获取gps位置,并在位图上将其绘制为圆圈,然后将其保存以继续进行操作,因此我需要重复阅读并保存文件。但是不幸的是,当我保存文件并读取文件时,经过多次迭代后文件已损坏...!
代码:

File output = new File(tmpDirectory, "map.jpg");
    try {
        OutputStream outputStream = new FileOutputStream(output);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
        outputStream.flush();
        outputStream.close();
    } catch (Exception ex) {
        Message("error!");
    }

    directory = tmpDirectory;//updating directory to load the manipulated image
    readFile(directory + "map.jpg", false);//setting the image view new image
Run Code Online (Sandbox Code Playgroud)

包含的图像:迭代后的 图片包含的图像: 主图像

android jpeg outputstream bitmap image-compression

3
推荐指数
1
解决办法
2597
查看次数