获得所有像素的形状

时间:2012-02-09 00:35:02

标签: c# c++ image-processing opencv

我在图像中有4个形状

我想在点列表中获得一个形状的像素

形状具有相同的颜色

List<point> GetAllPixelInShape(point x)
{
//imp
}

此形状的x点

2 个答案:

答案 0 :(得分:0)

简而言之,您可以从连接的组件/区域标记算法开始。

http://en.wikipedia.org/wiki/Connected-component_labeling

在OpenCV中,您可以调用findContours()来识别轮廓,这些轮廓是您所连接区域的边界。

http://dasl.mem.drexel.edu/~noahKuntz/openCVTut7.html

OCR是一项非常困难的任务,尤其对于像阿拉伯语这样的脚本。从头开始创建OCR算法需要大量的工作和众多算法协同工作。机器打印文本的OCR很难。在你有一到两年的图像处理经验之前,我建议尝试实现一种读取手写的算法。如果您还没有阅读有关OCR的教科书和学术论文,您可能会花费大量时间来复制已经完成的工作。

如果您不熟悉轮廓跟踪和/或斑点分析,那么使用OpenCV可能不是一个好的第一步。由于您有一个特定的目标,您可能首先在用户友好的GUI中尝试不同的算法,这将节省您的编码时间。

考虑下载ImageJ,以便了解算法的工作原理。有各种常见图像处理算法的插件。

http://rsbweb.nih.gov/ij/

答案 1 :(得分:0)

您提出的方法签名无法提供足够的信息来解决此问题。你的方法需要知道你的形状的边界,它的长度和宽度等等,理想情况下是一组指示这些边界的点。

有了这些内容后,您可能会应用this article的详细信息,特别是the answer中指定的算法来解决您的问题。