matlab中pct使用,如何利用Matlab读取PCT格式的图像文件

图像文件有多种多样,我们常见的有jpg、tif、png、bmp等等,这些格式利用Matlab中的imread均可以完成读取的工作,但是还有一些少见的格式,如pct格式的图像文件,在Matlab中直接利用imread函数是不能将其读取到Matlab,并进行显示、处理的……进行看到了一些文章,一些别人的方法,不错,分享了……

首先说明一下什么是pct图像文件格式:PICT格式的文件扩展名是*.PIC或*.PCT,该格工的特点是能够对大块相同颜色的图像进行非常有效的压缩。

在Matlab中的读取方法:

图片本身打开是一片空白的,需要通过matlab程序将里面的信息提取出来,否则没有意义,图片要读取到matlab中,

基本上是用imread,但是imread是不支持pct格式的,因此只能用低级文件的操作。

先打开,fid = fopen('villain_1.pct'),然后将它读取,y = fread(fid,'*uint8');此处利用*uint8是和你的pct文件有关的……不同的pct文件,有不同的说明,如我的例子:这张图片的一个英文介绍,

为了防止我翻译失误,我给原文:(The first step is to read the image files provided. As the image files retrieved from the fingerprint archive are stored in ‘pct’ format which has a header section followed by the grey-level image of 512 x 512 pixels packed into a raster stream (from left to right and top to bottom) with each pixel presented by a single byte (256 grey levels), you need to produce a file conversion program to access the image data contained in the files.)

由上面的英文可以知道,pct中的图像大小为512*512,而且,图像含有一个头文件,也就是说这张图片包括header section +512*512灰度图片,图像信息应该是在灰度图片里,因此,*uint8表示读进无符号的8位数保存无符号的8位整数,即2^8=256。发现y的length为262440,而512*512为262114,剩余了296,应该是所谓的header section,因此,A= y(297:262440);就应该是灰度图片了,B = reshape(A,512,512);imshow(B)。即可完成显示功能……

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值