【问题标题】:Analyze bitmap and display the type of geometric shape.分析位图并显示几何形状的类型。
【发布时间】:2014-05-23 14:36:28
【问题描述】:

我需要在 C# 中开发一个控制台应用程序,它获取 位图图像 的名称作为主函数中的参数。应用程序必须分析文件中的图像内容并显示以控制几何形状的类型及其颜色。 状况: - 仅未压缩的 BMP 文件仅包含主要形式:矩形、正方形和三角形 - 图片包含一种或多种形式 - 表单是原色 - RGB 和白色背景不透明 - 除了 Visual Studio for 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);
    `

【问题讨论】:

  • 这太宽泛了。你能把你的问题说得更具体一点吗?已经有关于从位图中读取像素的问题了。
  • 在哪里?我没有在 C# 中找到可以帮助我的东西。如何将每个像素放入矩阵中?
  • 搜索“C# bitmap get pixel”的可能结果可能会给您一些提示如何获取单个像素的颜色...我不确定您是否需要提示如何查找如何使用“C# for 循环”或“C# 使用 ++ 将值增加 1”...另外我怀疑您应该自己阅读 BMP 格式...请让您的老师对这篇文章进行澄清:)
  • 问题已解决。谢谢! :)

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


【解决方案1】:

System.Drawing.Bitmap有这个方法:

public Color GetPixel ( int x, int y );

除此之外,似乎确定位图是代表三角形、正方形还是矩形需要比找到该方法更多的毅力和机智。你确定你能做到吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多