当前位置: 首页 > 编程笔记 >

C#图像灰度级拉伸的方法

吕自明
2023-03-14
本文向大家介绍C#图像灰度级拉伸的方法,包括了C#图像灰度级拉伸的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了C#图像灰度级拉伸的方法。分享给大家供大家参考。具体如下:

//定义图像灰度拉伸函数
private static Bitmap GrayLP (Bitmap a)
{
  Rectangle rect = new Rectangle(0, 0, a.Width, a.Height);
  System.Drawing.Imaging.BitmapData srcData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, a.PixelFormat);
  IntPtr ptr = srcData.Scan0;
  int bytes = 0;
  if (a.PixelFormat == System.Drawing.Imaging.PixelFormat.Format8bppIndexed)
  { bytes = a.Width * a.Height; }
  else { bytes = a.Width * a.Height * 3; }
  byte[] grayValues = new byte[bytes];
  System.Runtime.InteropServices.Marshal.Copy(ptr, grayValues, 0, bytes);
  byte n = 255, m = 0;
  double p;
  //计算最大和最小灰度级
  for (int i = 0; i < bytes; i++)
  {
   //计算最小灰度级
   if (n > grayValues[i])
   {
     n = grayValues[i];
   }        
   //计算最大灰度级
   if (m < grayValues[i])
   {
     m = grayValues[i];
   }
  }
  //得到斜率
  p = 255.0 / (m - n);
  //灰度拉伸
  for (int i = 0; i < bytes; i++)
  {
   grayValues[i] = (byte)(p * (grayValues[i] - n) + 0.5);
  }
  System.Runtime.InteropServices.Marshal.Copy(grayValues, 0, ptr, bytes);
  a.UnlockBits(srcData);
  return a;
}

希望本文所述对大家的C#程序设计有所帮助。

 类似资料:
  • 本文向大家介绍C#数字图象处理之图像灰度化方法,包括了C#数字图象处理之图像灰度化方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#数字图象处理之图像灰度化方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 我有一个div的背景图像看起来在桌面上非常好。但是当我切换到mobile时,图像从上到下被拉伸,在内容和轮播本身之间产生了很大的空间,而轮播本身都在div中。 下面是滑动器代码: 注我将高度设置为固定的550px,我知道这是问题所在。我的问题是如何使高度的东西,而在移动,使它可以看起来一样,在桌面。 下面是我正在使用的特定轮播的javascript: 这里的截图向你展示了我的网站上正在发生的事情。

  • 所以我有一个字节数组,代表像素数据(8位灰度)。没有头球。没什么。只是数据。我想用这些数据创建一个缓冲图像。我做的 其中w只是以像素为单位的宽度,h是以像素为单位的高度,数据是字节数组,图像是BufferedImage 这是我的作画方法 然而,我得到了这个图像(真实图像是指纹,大部分是白色像素) 出什么事了?我试着按原样保存数据,然后在Photoshop中查看。数据很好。 [编辑]别管这个问题。我

  • 我正在将图像渲染到div中。我想避免我的形象被拉伸。 我的问题是,我的图像的宽度会拉伸。我希望它有规则的宽度,即使部分图像将丢失。

  • 实际上我想对每个像素做一些计算,为此我需要显式地访问每个像素。 如有任何帮助或建议,我们将不胜感激。

  • 我有一个图像叫做myImage。jpg。这是我的CSS: 出于某种原因,当我这样做时,myImage的宽度会延伸到整个屏幕上,但高度只会延伸到页面上其他所有内容的高度。所以如果我把一堆 在我的html页面,然后高度会增加。如果我的超文本标记语言页面只包含一个 那么背景图像的高度就是1的高度 我如何使我的背景图像的高度100%的屏幕,用户使用它来查看网页?