gpt4 book ai didi

python - 图片到视频-转换为IplImage使视频变蓝

转载 作者:行者123 更新时间:2023-12-02 17:53:46 26 4
gpt4 key购买 nike

我想使用opencv从图像创建视频。
奇怪的问题是,如果我要写图像(bmp)
到磁盘,然后加载(cv.LoadImage)它可以很好地渲染,但是
当我尝试从StringIO加载图像并进行转换时
它到IplImage,它将视频变成蓝色。

这是代码:

import StringIO
output = StringIO.StringIO()
FOREGROUND = (0, 0, 0)
TEXT = 'MY TEXT'
font_path = 'arial.ttf'
font = ImageFont.truetype(font_path, 18, encoding='unic')
text = TEXT.decode('utf-8')
(width, height) = font.getsize(text)
# Create with background with place for text
w,h=(600,600)
contentimage=Image.open('0.jpg')
background=Image.open('background.bmp')

x, y = contentimage.size

# put content onto background
background.paste(contentimage,(((w-x)/2),0))
draw = ImageDraw.Draw(background)
draw.text((0,0), text, font=font, fill=FOREGROUND)

pi = background
pi.save(output, "bmp")
#pi.show() #shows image in full color
output.seek(0)
pi= Image.open(output)
print pi, pi.format, "%dx%d" % pi.size, pi.mode
cv_im = cv.CreateImageHeader(pi.size, cv.IPL_DEPTH_8U, 3)
cv.SetData(cv_im, pi.tostring())
print pi.size, cv.GetSize(cv_im)
w = cv.CreateVideoWriter("2.avi", cv.CV_FOURCC('M','J','P','G'), 1,(cv.GetSize(cv_im)[0],cv.GetSize(cv_im)[1]), is_color=1)
for i in range(1,5):
cv.WriteFrame(w, cv_im)
del w

最佳答案

OpenCV在PIL中使用BGR打开默认的图像,情况并非如此。那就是你的问题。已经给出了解决方案,但是我写了这篇文章,以便您了解其背后的原因,并可能针对这种情况以及将来的任何情况得出自己的解决方案。

关于python - 图片到视频-转换为IplImage使视频变蓝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12419162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com