参考:https://zhuanlan.zhihu.com/p/84511113
1.Pillow
from PIL import Image
img=Image.open('girl.jpg')
img.show()
2.matplotlib
import matplotlib.pyplot as plt
im = plt.imread('girl.jpg')
plt.imshow(im)
plt.show()
3.opencv
import cv2
img = cv2.imread('girl.jpg')
cv2.imshow('美女', img)
cv2.waitKey(0)
通过读取大量图片不断播放形成播放的视频效果
原始版本
def Play(self):
showinfo("提示", "开始播放")
while self.now<self.len:
img = cv2.imread(self.dir_path + self.s[self.now]) # 读取图片
cv2.imshow("回放", img) # 展示图片时窗口显示名称
cv2.waitKey(100) # 图像展示时间,单位:毫秒(ms)
self.now+=1
cv2.destroyAllWindows()
cv2.waitKey(1)
加入按键控制,进行快进后退的控制
def Play(self):
showinfo("提示", "开始播放")
while self.now<self.len:
img = cv2.imread(self.dir_path + self.s[self.now]) # 读取图片
cv2.imshow("回放", img) # 展示图片时窗口显示名称
key = cv2.waitKey(100)
print('key =', key)
#cv2.waitKey(100) # 图像展示时间,单位:毫秒(ms)
if key==112:#按键p
self.stop_Play=1-self.stop_Play
if key==113:#按键q
break
if key==2:#left
self.now=max(self.now-10,0)
if key==3:#right
self.now=min(self.now+10,self.len-1)
if self.stop_Play==1:
self.now -= 1
self.now+=1
if self.now==self.len:
self.now-=1
cv2.destroyAllWindows()
cv2.waitKey(1)
利用qt的处理方法
import os
import sys
from PyQt5.QtGui import QImage, QPixmap
#import neoapi
#import threading
from PyQt5 import *
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QApplication, QLabel, QHBoxLayout
from PyQt5.QtCore import QTime, QTimer, QThread
class ImageWin(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.setGeometry(0, 0, 2048, 1024)
self.setAutoFillBackground(False)
self.label = QLabel(self)
self.label.resize(2048, 1024)
self.layout = QHBoxLayout(self)
self.layout.addWidget(self.label)
# self.label.setGeometry(0,0,768,1024)
self.timer = None
self.camera = None
self.showDir = None
self.fileList = []
def showImage(self, camera=None, id=""):
self.setWindowTitle(id)
self.camera = camera
self.timer = QTimer()
self.timer.timeout.connect(self.display)
self.timer.start(100)
self.label.setEnabled(True)
def display(self):
print('display')
try:
img = self.camera.GetImage()
imgarray = img.GetNPArray()
h, w = imgarray.shape[:2]
# print(w,h)
pixmap = QImage(imgarray, w, h, QImage.Format_BGR888)
pixmap = QPixmap.fromImage(pixmap)
self.label.setPixmap(pixmap)
except TypeError:
print('no frame!')
def showImages(self, dir,suffix='.jpg'):
self.showDir = dir
self.setWindowTitle("replay")
print('show dir:', self.showDir)
if not os.path.exists(self.showDir):
print("no such directory")
return
files = os.listdir(self.showDir)
for file in files:
if os.path.join(self.showDir, file).endswith('.jpg'):
self.fileList.append(os.path.join(self.showDir, file))
print(os.path.join(self.showDir, file))
self.timer = QTimer()
self.timer.timeout.connect(self.replay)
self.timer.start(10)
self.label.setEnabled(True)
def replay(self):
print("replay")
if len(self.fileList) == 0:
self.close()
try:
img = self.fileList[0]
pixmap = QPixmap(img)
self.label.setPixmap(pixmap)
del (self.fileList[0])
except:
print('no picture')
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Space:
print("Space")
self.close()
if event.key() == QtCore.Qt.Key_Enter:
print("Enter")
if event.key() == QtCore.Qt.Key_Escape:
self.close()
def closeEvent(self, event):
if self.timer is not None:
self.timer.stop()
event.accept()
if __name__=="__main__":
app=QApplication(sys.argv)
win=ImageWin()
dir='/Users/wangyitian/FJTX/code/python/AI_Asian_Games/Competitions/24/24'
win.showImages(dir)
win.show()
# cameraSetupWin.show()
sys.exit(app.exec_())