python - 如何将 .txt 文件解码为图像格式
问题描述
我有一个包含像素坐标和像素值的 .txt 文件。我试图以 8 位压缩的 png 和 jpeg 格式将其可视化,但我希望它是 16 位图像格式,如 tiff。我尝试以 tiff 格式保存我的图像,但它不是我预期的图像,它有很多噪音,与 png 或 jpeg 相比,当我打开文件时我什至看不到图像。
这是我的代码
import numpy as np
from PIL import Image
import pandas as pd
from matplotlib import pyplot as plt
file = open('filename')
data = pd.read_table(file, header=None, skiprows=8, decimal=",")
data = data.iloc[:, :]
rows, cols = data.shape
na = np.array(data)
plt.imshow(na)
plt.imsave('mes.png',an)
na.save('myimg.tif')
实施此操作时我做错了什么,有什么建议或更改吗?感谢您的帮助,感谢您的宝贵时间。
解决方案
问题是您没有将数据标准化为无符号 16 位 TIFF 或 PNG 文件的正确范围 0..65535。
我在这里使用 OpenCV 函数,但您可以使用 Numpy 或直接 Python 来获得相同的结果。因此,在转换为 Numpy 数组后
... your code ...
na = np.array(data)
import cv2
# Normalise (scale) to range 0..65535
sc = cv2.normalize(na, None, alpha=0, beta=65535, norm_type = cv2.NORM_MINMAX, dtype = cv2.CV_16U)
# Save, using any ONE of the following methods
Image.fromarray(sc).save('result.tif')
Image.fromarray(sc).save('result.png')
cv2.imwrite('result.tif', sc)
cv2.imwrite('result.png', sc)
推荐阅读
- css - 为什么角材质有时会使用[disabled][disabled]?
- wordpress - 在 Joomla/Wordpress 中刷新自定义扩展/插件的 API 令牌
- r - 从 R/exams 中所有生成的考试中生成答案 excel
- javascript - 如何强制 axios 不在 GET 请求中缓存
- python - 是否有内置选项可以使用 `__debug__=True` 和 `__debug__=False` 运行 python 单元测试?
- angular - Angular 9,将数组绑定为子组件的@Input 不起作用
- python - 如何在pygame中移动按钮?
- lua - 有没有办法在没有 504 错误的情况下调试 lua 应用程序?
- html - CSS Grid 两次显示项目
- java - 我的合并排序程序在 Java 中显示了一个超出范围的数组