8

I need a way to transform image containing human into a image containing only body sihlouette in one color. First i took a look at Canny edge detector (OpenCV implementation), but this may lead to problems with background of the image.

I`ve tried with GrabCut OpenCV implementation. This works fine in most of cases, bit it have extremely bad time performance, example for 480x320 image it takes up to 1 minute to process. Also the problem with grabcut is that user need to make interaction and to set the background area and user area, which in my case is not allowed.

So, maybe you can give me ideas about some another approach using something different than GrabCut, or suggest me how to enhance GrabBut time performance(Maybe gpu implementation). Also i need a suggestion about algorithm that will locate human body, and help grabcut algorithm with positioning of body/background area.

Example:

Example

4

4 回答 4

5

可以提出两件事来调查,这可能会有所帮助:

1) CIDetector

2)适用于 iOS 的 OpenCV 库。这个项目看起来不活跃,但你可以在这里找到一些分叉或相关项目。

于 2013-04-08T21:55:50.430 回答
1

将图像缩小一半分辨率(使用pyrDown()),运行 GrabCut,使用轮廓检测​​对剪切进行矢量化,并根据需要进行放大。

于 2014-05-20T20:54:40.567 回答
0

OpenCV would be a good option for something like that. You can get a pre-built library for ios on the official site:

http://opencv.org/

And there is also a Tutorial-App using OpenCV, that may have a similar ability to what you're looking for:

http://computer-vision-talks.com/

于 2013-04-10T08:13:02.573 回答
0

您可以为此使用 Canny 的边缘检测。

http://iosgpuar.blogspot.com/2011/12/canny-edge-detection-using-fragment.html

于 2013-04-15T08:34:12.800 回答