0

我想在 C 中使用 gstreamer 进行某种图像处理,我在其中读取几张图像,然后将它们全部连接到一个大图像中(我的程序中的图像是用户可以稍后拍摄的选项),我不想要使用任何外部库来做到这一点,任何建议都会很棒

4

2 回答 2

0

使用 multifilesrc 将多个文件连接到一个文件中。 http://gstreamer.freedesktop.org/wiki/MultiFileSrc

于 2013-10-25T12:01:48.487 回答
0

所以基本上你想做图像的合成,例如给定图像 ABCD 产生这个图像:

________________
|      |       |
|   A  |   B   |
|______|_______|
|      |       |
|   C  |   D   |
________________

?

如果是这样,videomixer 将是一个不错的选择,如果这确实是您想要的,我将编辑我的答案。

祝你今天过得愉快 !

编辑:正如您所要求的,这里是如何使用 videomixer 合成两个不同大小的图像的示例:

gst-launch-1.0 uridecodebin uri=file:///home/meh/Pictures/questions.jpg ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! videomixer name=m sink_1::xpos=320 ! autovideosink uridecodebin uri=file:///home/meh/Pictures/testsrc.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! m.

解释 :

我们为图像创建两个解码器,使用 videoscale 将它们调整为任意大小(此处为 320 x 240),冻结它们并将它们发送到 videomixer。videomixer 将 sink_1 的 x 位置设置为 320,这会偏移第一张图像,因此第二张图像也会出现。

如果您计划对此进行动态支持,http ://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-editing-services/html/ch01.html,GES 将是您的不错选择,请随意在 freenode 上的#pitivi 中来访,如果你想 ping 我,我的昵称是 Mathieu_Du。

免责声明:使用 gst 1.3 测试,应该适用于 1.X 系列,不太确定 0.10。

于 2013-10-25T12:49:16.377 回答