【问题标题】:Converting a thresholded image into a byte array?将阈值图像转换为字节数组?
【发布时间】:2013-06-27 17:54:30
【问题描述】:

谁能告诉我如何将存储在“位图”变量中的阈值图像转换为字节数组并在 C# 中的文本框或文本文件中查看字节数组?

有人可以帮我写代码吗?

我已使用 Aforge.net - link 对图像进行了阈值处理。并试图以 1 和 0 的形式查看它的字节数组。

谢谢。

【问题讨论】:

    标签: c# image byte aforge threshold


    【解决方案1】:

    如果您的图像是位图,您可以使用

    LockBits 然后是 Scan0 方法:

    http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=EN-US&k=k(System.Drawing.Imaging.BitmapData);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);k(DevLang-csharp)&rd=true

      public static Byte[] BmpToArray(Bitmap value) {
          BitmapData data = value.LockBits(new Rectangle(0, 0, value.Width, value.Height),   ImageLockMode.ReadOnly, value.PixelFormat);
    
          try {
            IntPtr ptr = data.Scan0;
            int bytes = Math.Abs(data.Stride) * value.Height;
            byte[] rgbValues = new byte[bytes];
            Marshal.Copy(ptr, rgbValues, 0, bytes);
    
            return rgbValues;
          }
          finally {
            value.UnlockBits(data);
          }
        }
    

    【讨论】:

    • 你能用代码sn-p解释一下具体是怎么做的吗?谢谢
    • 先生,您编写的 sn-p 代码完美运行,并给出了我所期望的输出,表示黑白阈值图像的 0 和 255 秒。只要我获得 15 名声望,我就会给你的答案打分
    • 非常好,尽管您应该考虑将步幅作为输出参数输出,因为它对于操作数据是必要的。虽然我猜可以将数组长度除以图像高度......
    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 2013-05-19
    • 2013-01-14
    • 2013-07-29
    • 2013-08-31
    相关资源
    最近更新 更多