Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 在倍频程中读取tif文件时出现问题_Image Processing_Octave_Tiff - Fatal编程技术网

Image processing 在倍频程中读取tif文件时出现问题

Image processing 在倍频程中读取tif文件时出现问题,image-processing,octave,tiff,Image Processing,Octave,Tiff,我正在尝试使用倍频程读取.tif格式的医疗成像数据。碰巧只有来自的软件才有能力读取我的医学图像。我所指的图像样本就是其中之一。此图像只能在斐济以.tif格式读取。图像也可以转换为jpg图像。仅在数据点对其他图像编辑软件可见之后。现在的问题是,我想把它加载到八度音阶中去读它——目前这是不可能的。倍频程中的imshow()函数不允许我可视化给定的.tif文件 所以,如果有人有阅读这种文件格式的经验,请让我知道。谢谢。您的链接图像是16位灰度图像,请参阅$gm identify-verbose hel

我正在尝试使用倍频程读取
.tif
格式的医疗成像数据。碰巧只有来自的软件才有能力读取我的医学图像。我所指的图像样本就是其中之一。此图像只能在斐济以
.tif
格式读取。图像也可以转换为jpg图像。仅在数据点对其他图像编辑软件可见之后。现在的问题是,我想把它加载到八度音阶中去读它——目前这是不可能的。倍频程中的
imshow()
函数不允许我可视化给定的
.tif
文件


所以,如果有人有阅读这种文件格式的经验,请让我知道。谢谢。

您的链接图像是16位灰度图像,请参阅
$gm identify-verbose hello.tif
。因此,让我们将其加载到GNU倍频程:

img = imread ("hello.tif");
hist (img(:), 200);            # show histogram

啊!!,图像的主要信息在0-600范围内(可能使用的图像采集系统的分辨率为11或12位),因此让我们将此部分缩放并打印为彩色编码(viridis)图像:

这是你想要的吗?当然,我们也可以使用灰色颜色贴图,请尝试:
colormapglay


如果这仍然不符合您的需要,您应该真正解释您希望看到的内容。…

您的链接图像是16位灰度图像,请参阅
$gm identify-verbose hello.tif
。因此,让我们将其加载到GNU倍频程:

img = imread ("hello.tif");
hist (img(:), 200);            # show histogram

啊!!,图像的主要信息在0-600范围内(可能使用的图像采集系统的分辨率为11或12位),因此让我们将此部分缩放并打印为彩色编码(viridis)图像:

这是你想要的吗?当然,我们也可以使用灰色颜色贴图,请尝试:
colormapglay


如果这仍然不符合您的需要,您应该真正解释您希望看到的内容……

您可能需要解释斐济(ImageJ)默认工作的原因。原因是,对于非8位图像,ImageJ仅使用图像的最大值和最小值。可以设置其他值,但即使如此,也只能在最大值和最小值之间设置。从不使用数据类型的实际限制。这是有道理的,因为大多数16位图像从一开始就不是来自16位相机。我对使用过滤器去除图像的噪声感兴趣。目前我不能使用八度音阶的'imshow()'。我发现的一个原因是,据说图像编码为16位,但倍频程只允许显示8位的图像。那么,有没有成功的方法来使用
imshow()
@motiur:正如我上面所说的“倍频程只允许显示8比特的图像”是不对的。拍摄上述图像的相机分辨率为11或12位,存储为16位整数。因此,通常将其缩放到0..1范围内以进行进一步处理。如果您只使用
imshow
而没有限制,它会将值0显示为黑色,将值2^16-1显示为白色,但由于您的整数范围为0..2000(请参见我的直方图),因此您会看到一个几乎为黑色的图像。这里没有魔法你可能想解释为什么斐济(ImageJ)默认工作。原因是,对于非8位图像,ImageJ仅使用图像的最大值和最小值。可以设置其他值,但即使如此,也只能在最大值和最小值之间设置。从不使用数据类型的实际限制。这是有道理的,因为大多数16位图像从一开始就不是来自16位相机。我对使用过滤器去除图像的噪声感兴趣。目前我不能使用八度音阶的'imshow()'。我发现的一个原因是,据说图像编码为16位,但倍频程只允许显示8位的图像。那么,有没有成功的方法来使用
imshow()
@motiur:正如我上面所说的“倍频程只允许显示8比特的图像”是不对的。拍摄上述图像的相机分辨率为11或12位,存储为16位整数。因此,通常将其缩放到0..1范围内以进行进一步处理。如果您只使用
imshow
而没有限制,它会将值0显示为黑色,将值2^16-1显示为白色,但由于您的整数范围为0..2000(请参见我的直方图),因此您会看到一个几乎为黑色的图像。这里没有魔法