如何根据透明区域分割图像

How to split an image based on transparent areas

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

这是我想要的

这是我的头像

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

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

我该怎么做?

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

示例输出

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

加载图像文件。

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

找到鸡蛋斑点(斑点 search/analysis、区域标记、连通分量、此方法的无数名称)

获取那些斑点的边界框

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

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

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