C#图像伪彩色处理方法
作者:沧海一粟…… 时间:2022-09-23 10:51:52
本文实例讲述了C#图像伪彩色处理方法。分享给大家供大家参考。具体如下:
//灰度图转伪彩色图像函数
public Bitmap PGrayToColor(Bitmap src)
{
try
{
Bitmap a = new Bitmap(src);
Rectangle rect = new Rectangle(0, 0, a.Width, a.Height);
System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
int stride = bmpData.Stride;
unsafe
{
byte* pIn = (byte*)bmpData.Scan0.ToPointer();
byte* P;
int R, G, B;
int temp = 0;
for (int y = 0; y < a.Height; y++)
{
for (int x = 0; x < a.Width; x++)
{
P = pIn;
B = P[0];
G = P[1];
R = P[2];
temp = (byte)(B * 0.114 + G * 0.587 + R * 0.299);
if (temp >= 0 && temp <= 63)
{
P[2] = 0;
P[1] = (byte)(254 - 4 * temp);
P[0] = (byte)255;
}
if (temp >= 64 && temp <= 127)
{
P[2] = 0;
P[1] = (byte)(4 * temp - 254);
P[0] = (byte)(510 - 4 * temp);
}
if (temp >= 128 && temp <= 191)
{
P[2] = (byte)(4 * temp - 510);
P[1] = (byte)(255);
P[0] = (byte)0;
}
if (temp >= 192 && temp <= 255)
{
P[2] = (byte)255;
P[1] = (byte)(1022 - 4 * temp);
P[0] = (byte)0;
}
pIn += 3;
}
pIn += stride - a.Width * 3;
}
}
a.UnlockBits(bmpData);
return a;
}
catch (Exception e)
{
MessageBox.Show(e.Message.ToString());
return null;
}
}
原图:
效果图:
反色图:
希望本文所述对大家的C#程序设计有所帮助。
标签:C#,图像,伪彩色
0
投稿
猜你喜欢
C/C++ Qt StatusBar底部状态栏应用教程
2023-09-29 16:25:45
C#中WebClient实现文件下载
2022-10-11 18:04:57
SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法
2023-11-01 16:03:39
android 自定义控件 自定义属性详细介绍
2022-08-05 12:19:41
Java创建线程的七种方法总结(全网最全面)
2023-11-03 14:27:26
c++回调之利用函数指针示例
2022-07-26 06:59:32
C# Winfrom实现Skyline画直线功能的示例代码
2023-04-24 12:41:48
一文搞懂Java中的注解和反射
2022-04-04 20:55:31
Android中检查、监听电量和充电状态的方法
2023-05-15 23:23:19
详解SpringBoot项目的创建与单元测试
2021-06-17 05:13:17
详解如何使用maven生成可以执行的jar
2023-08-17 00:18:43
java实现分页显示效果
2021-12-29 20:17:43
Android 钱包支付之输入支付密码的实现步骤
2021-09-23 11:17:09
Java分布式事务管理框架之Seata
2023-09-28 11:50:36
Java日期时间操作的方法
2021-12-27 18:36:05
Java中简单实用Quartz概述
2021-09-09 14:16:30
Java简单实现定时器
2023-07-16 18:10:58
Java自定义实现equals()方法过程解析
2021-10-12 11:21:48
SpringBoot Entity中枚举类型详细使用介绍
2023-11-11 00:30:52
详解kotlin中::双冒号的使用
2022-09-04 10:17:23