分析位图并显示几何形状的类型。

时间:2014-04-10 04:32:31

标签: c# image-processing system.drawing bitmapimage system.drawing.imaging

我需要在C#中开发一个控制台应用程序,它将位图图像的名称作为main函数中的参数。应用程序必须分析文件中的图像内容,然后显示以控制几何形状及其颜色的类型。 条件: - 仅限未压缩的BMP文件仅包含主要表单:矩形,正方形和三角形 - 图像包含一种或多种形式 - 表单是主要颜色 - RGB和白色背景不透明 - 不能使用 Visual Studio 为C#提供的库以外的其他库 - 应用程序可以在命令行上接收一张或多张图片

所以,我正在使用绘图库,我想制作一个bmp像素的矩阵。在那之后,我将跨越这个矩阵,我将发现图像中的图形。 我发现第一个不是白色的像素(只有背景为白色),然后我向右和向下追踪彩色路径(两个数字不能相交)。如果它们具有相同的长度,则它是三角形或正方形,否则它是三角形或矩形。我挖了更多,以找出它们中的哪一个。我删除了形状,我重复,因为可以有多个数字。 一切看起来都很棒,但我对此非常陌生,并且帮助我实现了这个目标。 请有人帮助我吗?

谢谢!

`    using System; 
    using System.Drawing;
    using System.Drawing.Imaging;

    namespace ConsoleApplication1
    {
        class Program
        {      
            static void Main(string[] args)
            {

                Bitmap bmp = new Bitmap("img1.bmp");
                int h, w;
                h = bmp.Height;
                w = bmp.Width;

                Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height); 

                System.Drawing.Imaging.BitmapData bmpData =bmp.LockBits
                 (rect, System.Drawing.Imaging.ImageLockMode.ReadWrite,
                 bmp.PixelFormat);
    `

1 个答案:

答案 0 :(得分:0)

System.Drawing.Bitmap有这种方法:

public Color GetPixel ( int x, int y );

除此之外,看起来确定位图是表示三角形,正方形还是矩形需要比找到该方法更多的韧性和足智多谋。你确定你能做到吗?