首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >位平面分解c#的实现

位平面分解c#的实现
EN

Stack Overflow用户
提问于 2017-11-10 15:04:21
回答 1查看 904关注 0票数 0

试图实现bpcs隐写,而我面临的第一个问题是位平面分解。我已经创建了一个方法(GetBitPlaneRed) (仅针对红色,但对于其他颜色似乎是一样的),它创建了一个基于原始位图和位平面索引(从1到8)的红白位图。

代码语言:javascript
运行
复制
    private static int GetBit(byte b, int bitIndex)
    {
        return  (b >> bitIndex) & 0x01;
    }


    private static Bitmap GetBitPlaneRed(Bitmap bitmap, int bitPlaneIndex)
    {
        Bitmap newBitmap = new Bitmap(bitmap.Width, bitmap.Height);

        for (int i = 0; i < bitmap.Width; i++)
        {
            for (int j = 0; j < bitmap.Height; j++)
            {
                Color currColor = bitmap.GetPixel(i, j);

                int bit = GetBit(currColor.R, bitPlaneIndex);

                Color newColor = Color.FromArgb(255, 255 * bit, 255 * bit);

                newBitmap.SetPixel(i, j, newColor);
            }
        }
        return newBitmap;
    }

看起来,它对MSB (最重要的bit)是正常的,但是对于其他位平面,它并不是那么正确。这是一些结果图片,我要与正确的比较。

编辑的“正确的结果”是一个科学文章写的BPCS隐写,所以我相信这个消息来源。而且,似乎错误在于我保存位平面图像的方式,所以我在这里添加了一些代码,在这里保存我的位平面图像。添加了一个原始图像以及。

代码语言:javascript
运行
复制
    private static void SaveBitPlanes()
    {           
        string filePath = "monalisa.jpg";            
        string ext = System.IO.Path.GetExtension(filePath);

        Bitmap bitmap = new Bitmap(filePath);
        ImageFormat imageFormat = bitmap.RawFormat;

        for (int i = 0; i < 8; i++)
        {
            Bitmap newBitmap = GetBitPlaneRed(bitmap, i);  
            newBitmap.Save("bitPlaneRed" + i + ext, imageFormat);
        }           
    }

原始图像:

我的MSB飞机结果:

我的第三位平面测试结果:

我的第7位飞机的结果:

正确的结果:

如有任何帮助或建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-22 22:00:06

在这个问题的存在过程中,我发现了所有重要的东西。

  • 我在主帖子中写的所有代码都是正确的。
  • 图像差异与jpeg压缩或任何其他压缩无关。它适用于任何文件格式。
  • 我的结果与文章中的结果不相似的原因是,我使用了一个低质量的图像作为来源。在我尝试了一些其他高质量的图像后,结果看起来很好而且非常详细。
  • 感谢大家帮助我弄清楚所有这些要点!
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47225694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档