求灰度值图像数据以图像的形式显示在显示器上

有个大的灰度值文件,以十六进制的形式按行存储图像的灰度值。如何在显示器上显示灰度图像?

可以将灰度值文件解码为 PNG 格式,并使用 Pillow 库将其显示出来:

from PIL import Image
import numpy as np

# 读取灰度值文件
with open('gray_values.txt', 'r') as f:
    lines = f.readlines()

# 将灰度值转换为 numpy 数组
gray_values = [int(line.strip(), 16) for line in lines]
gray_array = np.array(gray_values, dtype=np.uint8)

# 将 numpy 数组转换为图像
img = Image.fromarray(gray_array.reshape(512, 512), mode='L')

# 保存为 PNG 文件
img.save('gray_image.png')

# 显示图像
img.show()
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7746825
  • 这篇博客也不错, 你可以看下锐化图像时关于图像无法显示完全的问题
  • 除此之外, 这篇博客: 不同图像的噪声,选用什么滤波器去噪,图像处理的噪声和处理方法中的 双边滤波器去噪 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    双边滤波器(Bilateral filter)是一种能够保边去噪的滤波器。

    能够滤除图像数据中的噪声,且还会保留住图像的边缘、纹理等
    (因噪声是高频信号,边缘、纹理也是高频信息
    高斯滤波会在滤除噪声的同时使得边缘模糊)。

    是使用一个卷积核(模板矩阵),叠加到待处理像素点上,
    使用对应邻域像素点的加权求和来做为新的输出像素点的值一种方法,
    简单来讲,双边滤波和高斯滤波同样,不一样只在于模板矩阵的不一样。

     
    Image image = Image.FromFile("xx.jpg");
    Image<Bgr, byte> img = new Image<Bgr, byte>((Bitmap)image);//实例化一个三通道的OPENCV的图像对象
    Int k=3;//滤波核,奇数
    CvInvoke.EdgePreservingFilter(img, img, EdgePreservingFilterFlag.NormconvFilter, k, 0.4f);;//按照指定的滤波核进行双边滤波
    Bitmap bitmap= img.Bitmap;//输出Bitmap格式的结果
    
  • 您还可以看一下 程张浩老师的微信小程序项目实战之我画你猜视频课程课程中的 商品的展示功能和删除功能小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    我可以给出以下的解决方案:

    1.读取灰度值文件并将其转换为图像。可以按照下面的步骤进行操作:

    # 读取灰度值文件,每16进制数为一行
    with open('gray_values.txt', 'r') as f:
        data = f.readlines()
    
    # 将每行的16进制数字符串转换为数字列表
    gray_values = [int(x.strip(), 16) for x in data]
    
    # 使用Python的图像库(Pillow)将灰度值列表转换为图像
    from PIL import Image
    import numpy as np
    
    array = np.array(gray_values, dtype=np.uint8)
    image = Image.fromarray(array)
    

    2.将图像显示在显示器上,可以按照以下步骤进行操作:

    # 使用OpenCV将图像显示在窗口中
    import cv2
    
    cv2.namedWindow("Gray Image", cv2.WINDOW_NORMAL)
    cv2.imshow("Gray Image", np.array(image))
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    这里假设你已经安装好了Python开发环境,包括Pillow和OpenCV库。如果没有安装,可以使用以下命令进行安装:

    pip install Pillow
    pip install opencv-python
    

    如果你对这两个库不熟悉,可以参考以下网站获取更多信息: - Pillow文档:https://pillow.readthedocs.io/en/stable/ - OpenCV文档:https://docs.opencv.org/4.5.2/


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^