【发布时间】:2017-10-12 08:21:19
【问题描述】:
我正在尝试使用低级函数(fopen 和 fread)读取 TIFF 格式的 uint16 类型的灰度图像,如下所示:
fid = fopen(filepath,'r');
img = fread(fid,[ncolms, nrows], 'uint16=>uint16')';
得到的图像矩阵与单纯使用imread得到的图像矩阵不同:
img = imread(filepath);
生成的图像如下所示(左边是fread,右边是imread):
除了明显的强度差异之外,人们可能还注意到fread图像在图像的顶部边缘有一些伪影。我认为这一定是由于他们阅读图像的机制不同。
我想知道如何使用fopen 和fread 之类的低级函数来读取图像(灰度,而不是二进制),如果可以的话,相当于使用imread。
【问题讨论】:
-
我的意思不是听起来很咄咄逼人,但你已经问了很多没有accepting any answers 的问题。请注意,您不必必须这样做,但如果一个答案真正帮助并解决了您的问题,那就太好了。
标签: image matlab file-io grayscale image-formats