我正在通过tcp将我的iPhone中的png图像传输到我的MacBook.MacBook代码来自http://docs.python.org/library/socketserver.html#requesthandler-objects.如何转换图像以用于OpenCV?之所以选择png是因为它们很有效,但可以使用其他格式.
我写了一个测试程序,从文件中读取rawImage,但不知道如何转换它:
# Read rawImage from a file, but in reality will have it from TCPServer
f = open('frame.png', "rb")
rawImage = f.read()
f.close()
# Not sure how to convert rawImage
npImage = np.array(rawImage)
matImage = cv2.imdecode(rawImage, 1)
#show it
cv.NamedWindow('display')
cv.MoveWindow('display', 10, 10)
cv.ShowImage('display', matImage)
cv. WaitKey(0)
Run Code Online (Sandbox Code Playgroud) 使用PIL和OpenCV加载png图像时,会出现颜色偏移.黑色和白色保持不变,但棕色变为蓝色.
我无法发布图片,因为此网站不允许新手发布图片.
代码编写如下,而不是使用cv.LoadImageM,因为在实际情况下,原始图像是通过tcp接收的.
这是代码:
#! /usr/bin/env python
import sys
import cv
import cv2
import numpy as np
import Image
from cStringIO import StringIO
if __name__ == "__main__":
# load raw image from file
f = open('frame_in.png', "rb")
rawImage = f.read()
f.close()
#convert to mat
pilImage = Image.open(StringIO(rawImage));
npImage = np.array(pilImage)
cvImage = cv.fromarray(npImage)
#show it
cv.NamedWindow('display')
cv.MoveWindow('display', 10, 10)
cv.ShowImage('display', cvImage)
cv. WaitKey(0)
cv.SaveImage('frame_out.png', cvImage)
Run Code Online (Sandbox Code Playgroud)
如何修复色偏?