我有来自 FLIR 摄像机的热图像,每像素有 2 个字节。我不确定如何在 Ubuntu 中检查这些图像是否每像素有 2 个字节。
另外,如何将每像素 2 字节的图像转换为每像素 1 字节的图像?
$ exiv2 frame0171.tiff
File name : frame0171.tiff
File size : 4194510 Bytes
MIME type : image/tiff
Image size : 1024 x 1024
Camera make :
Camera model :
Image timestamp :
Image number :
Exposure time :
Aperture :
Exposure bias :
Flash :
Flash bias :
Focal length :
Subject distance:
ISO speed :
Exposure mode :
Metering mode :
Macro mode :
Image quality :
Exif Resolution : 1024 x 1024
White balance :
Thumbnail : None
Copyright :
Exif comment :
$ file frame0171.tiff
frame0171.tiff: TIFF image data, little-endian, direntries=14, height=1024, bps=182, compression=none, PhotometricIntepretation=RGB, width=1024
$ exiv2 Rec-000026_16bit_counts.tif
File name : Rec-000026_16bit_counts.tif
File size : 2097433 Bytes
MIME type :
Image size : 0 x 0
Rec-000026_16bit_counts.tif: No Exif data found in the file
$ file Rec-000026_16bit_counts.tif
Rec-000026_16bit_counts.tif: Big TIFF image data, little-endian
$ exiv2 Rec-000026_tiff.tif
File name : Rec-000026_tiff.tif
File size : 1816013 Bytes
MIME type : image/tiff
Image size : 778 x 778
Camera make :
Camera model :
Image timestamp :
Image number :
Exposure time :
Aperture :
Exposure bias :
Flash :
Flash bias :
Focal length :
Subject distance:
ISO speed :
Exposure mode :
Metering mode :
Macro mode :
Image quality :
Exif Resolution : 778 x 778
White balance :
Thumbnail : None
Copyright :
Exif comment :
$ file Rec-000026_tiff.tif
Rec-000026_tiff.tif: TIFF image data, little-endian
答案1
图像通常包含少量的标头数据和大量的图像数据。在大多数情况下,标头中的数据百分比可以忽略不计,因此我们可以忽略它并进行简单计算,发现它每像素包含 4 个字节。将文件大小除以分辨率,您将得到每像素的字节数。(但必须验证结果是否接近整数)
>>> 4194510/(1024*1024)
>>> 4.0002
这里,4194510 是文件大小(以字节为单位),1024*1024 是分辨率。