功能使用图片查找

时间:2011-12-02 21:27:35

标签: c# math image-processing

是否可以拍摄线条图并分析黑线与白色背景,并使用图像分析创建线条的最佳拟合函数?如果是这样,开始寻找的正确方向是什么?

2 个答案:

答案 0 :(得分:2)

因此,根据您的评论,您似乎只需要获得代表黑线的点列表。这很简单,所以这个例子只是抓住黑色像素并保存它们的{x,y}坐标。如果您需要更复杂的东西,可以在此基础上添加它。

using System.Drawing;

...

List<Point> GetBlackPixels( Bitmap bmp )
{
    var points = new List<Point>();
    for( int y = 0; y < bmp.Height; ++y )
    {
        for( int x = 0; x < bmp.Width; ++x )
        {
            if( bmp.GetPixel( x, y ) == Color.Black )
            {
                points.Add( new Point( x, y );
            }
        }
    }    
}

请注意GetPixel相对较慢。这并不意味着它不适合你的用例,它只是意味着,在大型图像上,你可能需要更快的东西。如果是这样,请在Bitmap上调用LockBits并直接指向内存。

请记住,在走这条路线之前先使用更简单的版本(我发布的内容)。 GDI +可能对你没问题。

此外,此代码完全符合您的要求。它只会保存真正的黑色点。如果您的问题中没有描述更复杂的情况,则可能需要或可能不需要添加更多代码。

答案 1 :(得分:0)

在被认为是黑色的点(即比给定阈值更暗)上运行linear regression。这种方法可以容忍图像压缩伪像。