python不同库之间图片格式的转换

3 篇文章 0 订阅
2 篇文章 0 订阅

之前在用pyqt做一个界面的时候,需要把程序打包成exe文件。使用pyinstaller打包后发现程序界面上的图片不见了,查阅很多资料,也没有得到解决,在此提出一种比较傻缺的做法,将图片像素赋值给一个矩阵数组,然后将矩阵数组转换为pyqt可处理的Qpixmap文件,就可以进行界面图片加载,并且可用。

import cv2 as cv
import numpy as np
from PIL import Image
data_wbc = [[[255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255],
             [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255]]]
data = np.array(data_wbc)
img = Image.fromarray(data.astype('uint8'))
pixmap = img.toqpixmap()
imgage = img.toqimage()

字数限制,截取一小部分。三维数据为data_wbc,首先使用np转换为data,再使用Image转换为PIL的Image格式图片,该格式自带toqpixmap和toqimage格式转化。

PIL的Image也可以转换为OPENCV格式图片:

img2 = cv.cvtColor(np.asarray(img),cv.COLOR_RGB2BGR)
cv.imshow("OpenCV",img2)
cv.waitKey()

反过来,opencv图片也可以转换为PIL图片,然后转换为pyqt可识别图片。

img = cv.imread("chuan.jpg")
image = Image.fromarray(cv.cvtColor(img,cv.COLOR_BGR2RGB))
image.show()
cv.waitKey()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值