Ank*_*nde 17 image-processing medical python-3.x
在将其转换为PNG格式后,我尝试将图形切割算法用于MRI切片.我一直遇到以下问题:
将输入数据剪切到有效范围,用于显示RGB数据([0..1]表示浮点数或[0..255]表示整数).
甚至在设置vmin和vmax后如下:
plt.imshow(out,vmin=0,vmax=255)
Run Code Online (Sandbox Code Playgroud)
Dat*_*yen 25
将图像投射到np.uint8缩放[0, 255]范围后将忽略此警告.它似乎是一个特征matplotlib,正如本期所讨论的那样.
plt.imshow((out * 255).astype(np.uint8))
Run Code Online (Sandbox Code Playgroud)
vik*_*ath 14
正如警告所说,它正在将数据剪裁在 (0,1) 之间......我尝试了上述方法,警告消失了,但我的图像缺少像素值。所以我尝试对我的 numpy 数组图像 (64, 64, 3) 执行以下步骤。步骤 1:检查数组的最小值和最大值
maxValue = np.amax(Image)
minValue = np.amin(Image)
Run Code Online (Sandbox Code Playgroud)
对于我的情况,图像的最小值为负,最大值为正,但所有值都在 (-1, 1.5) 之间,所以第 2 步:我只是在 imshow 之前剪辑了数据
Image = np.clip(Image, 0, 1)
plt.imshow(Image)
Run Code Online (Sandbox Code Playgroud)
请注意,如果您的像素值的范围类似于(-84, 317)等,那么您可以使用以下步骤
Image = Image/np.amax(Image)
Image = np.clip(Image, 0, 1)
plt.imshow(Image)
Run Code Online (Sandbox Code Playgroud)
小智 11
如果你想显示它,你可以使用img/255.
或者
np.array(img,np.int32)
Run Code Online (Sandbox Code Playgroud)
原因是如果颜色强度是一个浮点数,那么matplotlib 期望它的范围从 0 到 1。如果是 int,那么它期望是 0 到 255。所以你可以强制所有数字为 int 或将它们全部缩放 1 /255。
| 归档时间: |
|
| 查看次数: |
25395 次 |
| 最近记录: |