怎么用matlab把压缩成tiff

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用matlab把压缩成tiff相关的知识,希望对你有一定的参考价值。

参考技术A 1.用matlab实现图像压缩时,如何将图片仿真
图像压缩是当今信息时代迫切需求的一门图像处理技术,它极大的减少了图像的数据量,为图像的存储,传输提供了方便。

小波变换,是一种广泛用于图像压缩的方法。它能让图像按不同的分辨率分析。

根据Mallat算法的思想,图像能分解成一个轮廓信号(低频子图)和水平,垂直,对角线三个方向上的细节信号(高频子图)。而轮廓信号又可以进一步分解。

而图像的主要能量部分是低频部分,而且人眼视觉系统对低频部分更为敏感,所以可以对低频部分采用较低压缩比;对高频部分采用较大压缩比来进行压缩。 本文提出的是一种结合小波变换,DCT变换和矢量量化的压缩方法。

根据人眼的视觉特性,首先对图像进行小波分解,然后,对低频分量进行压缩比不大的DCT变换;对不同方向不同分辨率的高频分量进行不同码字大小的矢量量化编码,然后对反变换和解码后的系数进行小波重构。矢量量化过程中的码书设计采用的是LBG算法。

这样,根据对图像质量的不同要求,我们可以改变小波分解的层数,来得到不同压缩比的图像。本篇论文只对小波分解一层和两层后压缩进行了仿真和分析,表明该方案结合了各种压缩方法的优点,在满足图像质量的同时能得到较大的压缩比。

目前,在包装装潢设计中常用的图形处理软件有Pho-toshop,CorelDraw,AutoCAD等。但是这些软件中很少涉及到对图像进行压缩处理,以满足图像进行传输和储存的需要。

基于这一点考虑,在此尝试着用MATLAB编程来处理包装装潢图像的压缩,实现包装与计算机的紧密结合。 1 MATLAB MATLAB是MathWorks公司推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图像显示于一体,它附带的小波分析工具箱功能强大,可以完成小波分析的绝大部分工作。

MATLAB工具箱的出现避免了程序设计中的重复性劳动,缩短了开发周期,降低了成本,因而受到工科院校师生和研究人员的青睐。 在介绍利用MATLAB小波工具压缩图像的文献中,总是将真彩色RGB图像转换为灰度级索引图像进行处理.经过这种处理以后,图像的存储数据能得到一定的压缩,但由压缩后的数据难以恢复成理想的彩色图像。

文中用MATLAB中有关函数处理图像压缩,而且由压缩后的数据可以还原出图像.实验结果表明,还原出的图像效果是理想的。文中主要以lena图像的处理为例,对它进行二进小波多层分解后,将低频和高频近似的系数矩阵作相应的处理,来研究用MATLAB中的小波工具箱压缩图像的方法。

2 图像压缩方法 在实际应用中,首先需要从图像文件中读取图像数据.MATLAB使用imreed()函数完这一任务.例如,在电脑D盘中有一彩色图像文件picl.jps,则可由下述语句读取: X=imread(′D:\picl.′); MATLAB图像处理工具箱支持4种基本图像类型:索引图像、灰度图像、二进制图像和RGB图像.MATLAB直接从图像文件中读取的图像为RGB图像.它存储在三维数组中。这个三维数组有3个面,依次对应子红(Red)、绿(Green)、蓝(Blue)3种颜色,而面中的数据则分别是这3种颜色的强度值,面中的元素对应于图像中的像素点。

索引图像数据包括图像矩阵X与颜色图数组map,其中颜色图map是按图像中颜色值进行排序后的数组。对于每个像素,图像矩阵X包含一个值,这个值就是颜色图数组map中的索引。

颜色图map为m*3双精度矩阵,各行分别指定红、绿、蓝(R、G、B)单色值,map=〔RGB〕,R、C、B为值域为〔0,1〕的实数值,m为索引图像包含的像素个数.然后可根据情况采用不同的小波函数,进行索引图像的分解压缩。这里对上面产生的索引图像X用dbl小波进行2层分解。

〔c,l〕=wavedec2(X,2,′dbl′)。 在这里,一个索引图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的.高分辨率(即高频细节)子图像上大部分点的数值接近于0,越是高频这种现象越明显.对一个图像来说,表现一个图像最主要的部分是低频(即近似)部分。

多层小波分解的所有成分系数均保存在向量c中,低频近似与高频细节的系数需从向量C中提取。MATLAB分别使用appcoet2()和detcoef2()函数来完成这一工作。

这种方法是对低频和高频部分进行处理,因而提取低频和高频近似系数。 cAl=appcoef2(c,1,′dbl,′1);cH1=detcoef2(′h′,c,1,1); cDl=detcoef2(′d′,c,l,1);cVl=detcoef2(′v′,c,l,1)。

matlab实现离散余弦变换压缩(JPEG压缩原理) JPEG图像压缩算法: 输入图像被分成8*8或16*16的小块,然后对每一小块进行二维DCT(离散余弦变换)变换,变换后的系数量化、编码并传输; JPEG文件解码量化了的DCT系数,对每一块计算二维逆DCT变换,最后把结果块拼接成一个完整的图像。在DCT变换后舍弃那些不严重影响图像重构的接近0的系数。

DCT变换的特点是变换后图像大部分能量集中在左上角,因为左上放映原图像低频部分数据,右下反映原图像高频部分数据。而图像的能量通常集中在低频部分。

实例程序: function Jpeg I=imread('D:\MATLAB7\toolbox\images\imdemos\cameraman.tif'); %该图片在安装matlab的目录中找,原图为灰度图象 。
2.使用MATLAB图像压缩怎么做
I = imread('cameraman.tif'); % 输入图像

I = im2double(I); % 数据类型转换

T = dctmtx(8); % 计算二维离散DCT矩阵

dct = @(x)T * x * T'; % 设置函数句柄

B = blkproc(I,[8 8],dct); % 图像块处理

mask = [1 1 1 1 0 0 0 0 % 掩膜

1 1 1 0 0 0 0 0

1 1 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0];

B2 = blkproc(B,[8 8],@(x)mask.* x); % 图像块处理

invdct = @(x)T' * x * T; % 设置函数句柄

I2 = blkproc(B2,[8 8],invdct); % 图像块处理

imshow(I), figure, imshow(I2) % 显示原始图像和压缩重构图像
3.用matlab把11张tif图片做成一个连续动画
使用如下代码方式可以达到你想要的效果。

clear;

clc;

for i=2:50

c=strcat('a',num2str(i));%这里可以根据自己图片名字儿作相应的修改

c=strcat(c,'.bmp');

I=imread(c);

% I=rgb2gray(I)

figure(1);

imshow(I);

end

图片的保存方式如:a21.bmp,这样可以实现你的汽车动画。如果想要使用你的汽车图片做的话,请把汽车图片发给我,我帮你看看。

Java如何把一个PDF转为tif

TIF和TIFF文件格式是完全相同的,仅扩展名不同。TIF用于使用8.3命名约定的旧文件系统,而TIFF用于允许长文件名的新文件系统。

使用 Spire.PDF for Java,可将 PDF 转为 TIFF 保存到本地指定路径;支持转换 PDF 文档的所有页面或者指定页面为 TIFF 格式。

首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。JAR 文件可以从此链接下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而在应用程序中导入 JAR 文件。

<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository></repositories><dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>5.3.1</version>
</dependency></dependencies>

通过使用 Spire.PDF for Java 将 PDF 转为 TIFF 格式时,可通过设置 PdfDocument.saveToTiff() 方法中的不同参数,来实现将整个 PDF 转为 TIFF 格式或将指定页数范围的 PDF 页面转为 TIFF 格式。下面是实现转换的主要代码:

    创建 PdfDocument 类的对象,并通过 PdfDocument.loadFromFile() 方法加载 PDF 文档。

    调用 PdfDocument.saveToTiff(String tiffFilename) 方法将整个 PDF 文档保存为 TIFF 格式。

    调用 PdfDocument.saveToTiff(String tiffFilename, int startPage, int endPage, int dpix, int dpiy) 方法将 PDF 指定页面范围的 PDF 保存为 TIFF 格式。

代码如下:

import com.spire.pdf.*;

public class PDFtoTiff
public static void main(String[] args)
//加载PDF测试文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("input.pdf");

//将整篇文档保存为tiff格式
pdf.saveToTiff("ToTiff.tiff");

//将指定页面范围保存为tiff格式(第2页到第3页,并设置水平和垂直分辨率),
pdf.saveToTiff("ToTiff2.tiff",1,2,400,600);


希望能帮助到您。

参考技术A 安装Office时,默认安装Microsoft Office Document Image Writer组件(没有重新添加),在Word中,选文件——打印——打印机选“Microsoft Office Document Image Writer”——属性——高级——输入格式选“TIFF-黑白传真”——设置默认输入的文件夹——确定——确定,打印完成后,将输出到刚设置的默认文件夹中。 参考技术B 转是转了网上有dome 但是,特别大,本来我的pdf是50kb后面tif是500kb

以上是关于怎么用matlab把压缩成tiff的主要内容,如果未能解决你的问题,请参考以下文章

如何把文件压缩成tar.gz

怎么把多个文档合并成压缩包

压缩包如何制作成二维码?

怎么把压缩文件rar格式转化成csv格式?

怎么压缩成Tar格式

如何把一个压缩好的文件,拆分成几个压缩文件?