昨天做数字图像处理实验平滑处理部分,我选择的是Python编写,GUI使用PyQt5,使用了图像库PIL读取文件,然后转为numpy数组进行处理,再由PyQt5的QImage控件显示。
这其中出现一个问题,numpy数组的图像数据再转为图像显示的实现方式,没有特别成熟的方案。在前几次实验中使用QPixmap、QPainter绘制的方式,还有metaplot的plot绘制的方式再输出为文件到缓冲区,再用QImage读取文件的方式从缓冲区取出显示。
昨天研究Image的时候发现Image有一个ImageQt和ImageTK类是用于向这两种GUI的图形控件输出的方法。但Google遍中文英文包括官方文档都没有关于的这个方法的具体使用范例,最终在一家日文网站发现了办法,思路上大体还是输出到缓冲区再读回的办法,但已经比之前的方法高雅多了。
改进日文网站后我的写法:
顺便知道了Qiita是日本一家程序员技术分享网站
参考
PIL/Pillow チートシート - Qiita
PIL.Image と PyQt4.QtGui.QImageの相互変換
Pillow ImageQt Module