我想识别UIImageView
(或UIImage
)中的方块/矩形。
我看了“Very simple image recognition on iOS”,但那不是我正在寻找的。 p>
目前我有UIImageView
,不时会UIImage
。
大多数UIImage
es都有黑色方块/矩形,如下所示:
。
但是角落可能(或可能不)具有圆形边缘。
如何识别第一个黑色方块/矩形的大小?
最终结果是调整UIImageView
的大小,使UIImage
中的第一个黑色方块填满屏幕。像这样:
答案 0 :(得分:10)
如果您的图像在水平行中始终是清晰的黑色方块,则可以使用角点检测来识别矩形,然后选出最左边的四个角。基于Harris,Noble和Shi-Tomasi角点检测方法,我在开源GPUImage框架中有三种角点检测器。
对你的盒子运行GPUImageHarrisCornerDetectionFilter,阈值为0.4,灵敏度为4.0会产生以下结果:
它们有点难以辨认,但是红色的十字准线标志着探测器找到了盒子的角落。同样,您只需要取最左边的四个点来查找目标矩形,然后只需缩放图像或视图,以便此矩形现在填充您的视图。
如何运行此类功能检测的示例可以在我的框架中的FilterShowcase或FeatureExtractionTest示例中找到。我在this answer处通过信号处理描述了我这样做的过程。
答案 1 :(得分:0)
似乎最简单的解决方案是:
宽度可以从(2)得出。
答案 2 :(得分:-2)
根据我对您的问题的理解,您需要实施Canny Edge Detection Algorithm来检测图像中黑色边框的边缘。
为此,您应该使用以下链接中提供的图像处理框架
使用 Image.m 文件中的ImageWrapper *Image::cannyEdgeExtract(float tlow, float thigh)
功能。