【问题标题】:How to split an image based on transparent areas如何根据透明区域分割图像
【发布时间】:2019-04-05 08:36:36
【问题描述】:

我已经彻底搜索了互联网,但找不到解决方案

这里有我想要的

这是我的照片

这是我选择后透明度为 0 时的样子

所以我想以编程方式将图像分成 6 块。每个包含一个透明区域为0的鸡蛋

我该怎么做?

我首选的基于 c# 或 photoshop 脚本的解决方案,但我对所有解决方案持开放态度

示例输出

【问题讨论】:

  • 如果你想要0,你如何替换透明区域?背景颜色?
  • @Piglet 不只是删除它。结果将只有没有透明区域的鸡蛋。我的意思是额外的区域。我已经更新了问题
  • 我问自己这是否是你可以在 Photoshop 中做的事情,或者数量是否太高,这些图像的来源无法在你需要时提供它们......但如果你坚持这样做这会自动指定您是否知道鸡蛋的排列和大小,或者这可能会改变。这会影响解决方法的选择
  • @Piglet 我必须以编程方式进行。我也确信可以在不依赖图像大小或图像形状的情况下找到解决方案。我想我可以为此编写一个解决方案,但是如果已经存在解决方案,我没有时间这样做

标签: c# image-processing transparency photoshop


【解决方案1】:

要解决任何图像大小、鸡蛋大小、方向、位置、计数的问题,我建议使用以下方法:

加载图像文件。

提取 alpha 通道(其中包含透明度信息)

找到鸡蛋块(blob 搜索/分析、区域标记、连接组件、此方法的无数名称)

获取这些 blob 的边界框

使用这些边界框裁剪子图像

这可以通过大多数图像处理库来实现。如果您更喜欢 C#,请尝试 EmguCV。或者使用网络搜索来寻找其他人。

http://www.emgu.com/wiki/files/3.1.0/document/html/e13fa7a9-5eee-b46c-4b65-ff3e7e427719.htm

【讨论】:

猜你喜欢
  • 2013-08-04
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多