首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想把图像分成偶数和奇数线。

我想把图像分成偶数和奇数线。
EN

Stack Overflow用户
提问于 2022-03-13 09:07:31
回答 1查看 88关注 0票数 1

我有4096x2048分辨率的jpg图像。

我想把图像分割成偶数线。

图像像素坐标(1,1),(1,2).(1,4096)和(3,1),(3,2).(3,4096).都变成了奇数线图像。新的图像文件分辨率为4096x1024。

我搜索了很多code.But我找不到那种代码。

代码语言:javascript
复制
ffmpeg -i in.mp4 \
  -filter_complex "[0]il=l=d:c=d,split[o][e];\
                   [o]crop=iw:ih/2:0:0[odd];\
                   [e]crop=iw:ih/2:0:ih/2[even]" \
  -map "[odd]" -f rawvideo odd.yuv \
  -map "[even]" -f rawvideo even.yuv

这就是我所做的把图像(视频)分割成偶数的部分。

我怎么能做到呢?

EN

回答 1

Stack Overflow用户

发布于 2022-03-13 22:15:15

您发布的命令运行良好,只需更改格式即可。

您没有定义输出图像的格式。

我建议对输出图像使用PNG格式,而不是JPEG格式。

JPEG图像由于有损压缩而失去质量。

JPEG图像也在YUV420 pixel format中,因此色度通道是向下采样的.

我们可以使用以下命令:

代码语言:javascript
复制
ffmpeg -y -i in.jpg -filter_complex "[0]format=rgb24,il=l=d:c=d,split[o][e];[o]crop=iw:ih/2:0:0[odd];[e]crop=iw:ih/2:0:ih/2[even]" -map "[odd]" odd.png -map "[even]" even.png

下面的命令更优雅一些(不使用l=d:c=d):

代码语言:javascript
复制
ffmpeg -y -i in.jpg -filter_complex "[0]format=rgb24,il=deinterleave,split[o][e];[o]crop=iw:ih/2:0:0[odd];[e]crop=iw:ih/2:0:ih/2[even]" -map "[odd]" odd.png -map "[even]" even.png

样本输入in.jpg

输出:

odd.png

even.png

过滤器链开头的format=rgb24过滤器将输入像素格式从YUV420转换为RGB,然后再拆分为偶数和奇数。

它应该提高产量的质量,但它几乎是不引人注目的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71455299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档