我一直在开发一个网络应用程序。我被困在一个有问题的问题上。
我要解释一下我想做什么。
在这里,你们看到第一个有绿色形状的大图像。
我想做的是将这些形状裁剪成不同的png文件,并使它们的背景透明,就像大的下面裁剪的图像一样。在
第一张图片将由用户上传,我想裁剪成碎片,就像例子裁剪的图片上面。它可以用php的GD库或用python或c编写的服务器端软件完成。但我不知道这个行动叫什么,所以我也不知道谷歌要找什么信息。它涉及到计算机视觉检测水滴并将其裁剪成碎片等。
任何关键字,链接都会有帮助。在
谢谢你的帮助
Tags:
一个非常简单的方法是使用Flood Fill/Connected Component Labeling。基本上,这只是使用一个贪婪的算法,通过对任何颜色相同或相似的像素进行分组。在
这绝对不是检测斑点的理想方法,而且只能在有限的情况下有效。但是,它更容易理解和编写代码,并且对于您的目的来说已经足够了。在
Opencv提供了一个名为cv::findContours的函数来查找图像中连接的组件。如果总是绿色对白色,您希望cv::split将图像分为多个通道,在蓝色或红色通道上使用cv::threshold(白色区域为白色,绿色区域接近黑色),并使用^{cd1>}(因为您要提取暗区域),然后使用cv::findContours来检测斑点。然后,可以使用cv::boundingRect计算边界矩形,创建一个该大小的新图像,并使用作为遮罩的轮廓填充新图像。在
注意:这些是C++文档的链接,但是这些函数应该在Python和C.*包装中公开,对于后者,请参阅http://www.emgu.com。在我相信这篇维基百科文章很好地解决了这个问题:http://en.wikipedia.org/wiki/Blob_detection
但不记得任何现成的解决方案(-:
相关问题 更多 >
编程相关推荐