adhdbeyourself 2021-05-25 19:14 采纳率: 0%
浏览 395

python pyqt5 qimage显示灰度图(二维数组)

我有一张灰度图,在python里以np array的二维数组形式存在(im_np),现在要用qimage在界面中显示,用这个函数

qimage = QImage(im_np, im_np.shape[1], im_np.shape[0],QImage.Format_Grayscale16)

格式用Format_Grayscale16或者其他格式都可以,大佬能教我一下吗感谢

我主要是不理解这里的im_np应该改为几维数组,通道是几?我理解灰度图应该就是二维的数组,通道是1呀,但输进去显示就是不对。Qimage这个函数中各种图像格式有什么规律?

  • 写回答

3条回答 默认 最新

  • CSDN专家-黄老师 2021-05-25 19:40
    关注

    将np array转PIL,然后PIL转QImage,示例如下:

    # np array转PIL
    from PIL import Image  
    import numpy as np
    im = Image.open("/home/lw/a.jpg")
    im.show() 
    img = np.array(im)      # image类 转 numpy
    img = img[:,:,0]        #第1通道
    im=Image.fromarray(img) # numpy 转 image类
    im.show() 


    图片处理过程中经常需要将不同类型的图片对象互想转换,pyqt5中的QImage与PIL中的Image互转,借助于PIL中的ImageQt就行,简单一行代码搞定。

    from PIL import Image, ImageQt
     
    # QImage转Image
    image = ImageQt.fromqimage(qimage)
     
    # Image转QImage
    qimage = ImageQt.ImageQt(image)

    如有帮助,望采纳,谢谢

    评论

报告相同问题?