PIL.Image转换成OpenCV格式
PIL.Image颜色通道顺序RGB
OpenCV图像颜色通道顺序BGR
import cv2
from PIL import Image
import numpy
image = Image.open("input.jpg")
image.show()
img = cv2.cvtColor(numpy.asarray(image),cv2.COLOR_RGB2BGR)
cv2.imshow("OpenCV",img)
cv2.waitKey()
OpenCV转换成PIL.Image格式
import cv2
from PIL import Image
import numpy
img = cv2.imread("input.jpg")
cv2.imshow("OpenCV",img)
image = Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))
image.show()
cv2.waitKey()
OpenCV转换成Pyqt-Qpixmap
import cv2
from PyQt5 import QtGui
from PIL import Image
cv2_img=cv2.imread('input.jpg')
#第一种方式
img_RGB = cv2.cvtColor(cv2_img, cv2.COLOR_BGR2RGB)
qimage = QtGui.QImage(img_RGB[:], img_RGB.shape[1], img_RGB.shape[0], img_RGB.shape[1] * 3,
QtGui.QImage.Format_RGB888)
img_pix = QtGui.QPixmap.fromImage(qimage)
#第二种方式
# qimage=Image.fromarray(cv2.cvtColor(cv2_img, cv2.COLOR_BGR2RGB))
#qtimage = ImageQt.ImageQt(qimage)
# img_pix = QtGui.QPixmap.fromImage(qtimage)
PIL.Image转换成Pyqt-Qpixmap
import cv2
from PyQt5 import QtGui
from PIL import Image,ImageQt
img = Image.open("input.jpg")
qimage = ImageQt.ImageQt(img)
img_pix = QtGui.QPixmap.fromImage(qimage)
判断图像数据是否是OpenCV格式
isinstance(img, np.ndarray)
各种转换总结对比
#PIL.Image->OpenCV
img = cv2.cvtColor(numpy.asarray(image),cv2.COLOR_RGB2BGR)
#OpenCV->PIL.Image
image = Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))
#OpenCV->Pyqt-Qpixmap第一种方式
img_RGB = cv2.cvtColor(cv2_img, cv2.COLOR_BGR2RGB)
qimage = QtGui.QImage(img_RGB[:], img_RGB.shape[1], img_RGB.shape[0], img_RGB.shape[1] * 3,
QtGui.QImage.Format_RGB888)
img_pix = QtGui.QPixmap.fromImage(qimage)
#img_pix =QtGui.QPixmap(qimage)
#OpenCV->Pyqt-Qpixmap第二种方式
qimage=Image.fromarray(cv2.cvtColor(cv2_img, cv2.COLOR_BGR2RGB))
qtimage = ImageQt.ImageQt(qimage)
img_pix = QtGui.QPixmap.fromImage(qtimage)
#PIL.Image转换成Pyqt-Qpixmap
img = Image.open("input.jpg")
qimage = ImageQt.ImageQt(img)
img_pix = QtGui.QPixmap.fromImage(qimage)