C#图像亮度调式与伪彩色图的处理教程(推荐)
作者:Yulong5759 发布时间:2022-03-26 19:43:54
标签:C#,图像,亮度调式,伪彩色图,处理
如图,左图是效果,右图是原理,右图X轴代表图像一个像素点的灰度,Y轴代表RGB三个颜色对应的伪彩色图颜色。代码如下:
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
Color c = bmp.GetPixel(x, y);
int R = c.R; int G = c.G; int B = c.B;
byte temp = (byte)(B * 0.114 + G * 0.587 + R * 0.299);
if (temp >= 0 && temp <= 63)
{
bmp.SetPixel(x, y, Color.FromArgb(0, (byte)(4 * temp), (byte)255));
}
if (temp >= 64 && temp <= 127)
{
bmp.SetPixel(x, y, Color.FromArgb(0, 255, (byte)(510 - 4 * temp)));
}
if (temp >= 128 && temp <= 191)
{
bmp.SetPixel(x, y, Color.FromArgb((byte)(4 * temp - 510), 255, 0));
}
if (temp >= 192 && temp <= 255)
{
bmp.SetPixel(x,y, Color.FromArgb(255, (byte)(1022 - 4 * temp),0));
}
}
}
图像亮度调整:
for (int y = 50; y < 100; y++)
{
for (int x = 50; x < 100; x++)
{
// 处理指定位置像素的亮度
Color c = b.GetPixel(x, y);
int R = c.R; int G = c.G; int B = c.B;
R = R + degree; if (R > 255) R = 255;
G = G + degree; if (G > 255) G = 255;
B = B + degree; if (B > 255) B = 255;
b.SetPixel(x, y, Color.FromArgb(R, G, B));
}
}//其中degree是亮度阶梯度
来源:http://www.cnblogs.com/liyulongBlog/archive/2017/11/27/7904562.html


猜你喜欢
- Android移动开发实现简单计算器功能,供大家参考,具体内容如下前言android 开发小实验android 移动开发实现 简易计算器功能
- 一、泛型的基本概念java与c#一样,都存在泛型的概念,及类型的参数化。java中的泛型是在jdk5.0后出现的,但是java中的泛型与C#
- 概述一天之计在于晨,每天的早餐也是必不可少,但是很多人为了节约时间,都是简单的吃点凑合一下或干脆不吃早餐,这对于个人身体和工作效率来说,无疑
- 接触过Android开发的同学们都知道在Android中访问程序资源基本都是通过资源ID来访问。这样开发起来很简单,并且可以不去考虑各种分辨
- SharedPreferences在开发过程中,数据存取是较为频繁的,今天我们来了解下android几种常见的数据存取方式。在Android
- @Async注解如何实现方法异步处理大批量数据的时候,效率很慢。所以考虑一下使用多线程。刚开始自己手写的一套,用了线程池启动固定的线程数进行
- 1.Fork/Join框架简介Fork/Join 它可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并
- 一、MyBatis缓存介绍正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持1.一级缓存:基于PerpetualC
- 相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的。相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,
- 一、整体设计1、需求分析池化技术是计算机中的一种设计模式,内存池是常见的池化技术之一,它能够有效的提高内存的申请和释放效率以及内存碎片等问题
- 本文实例讲述了C#中委托用法。分享给大家供大家参考。具体分析如下:这里演示了如何使用匿名委托来计算员工的薪水奖金。使用匿名委托简化了程序,因
- 自定义Starter命名规则注意artifactId的命名规则,Spring官方Starter通常命名为spring-boot-starte
- 文件上传大部分通过web前端判断后尾名或者service后端判断后尾名,这种操作具有一定的风险,比如:我可以将一个jsp页面,修改后尾名改成
- 本文研究的主要是Java中hashCode的正确求值方法的相关内容,具体如下。散列表有一项优化,可以将对象的散列码(hashCode)缓存起
- 如何从C#获取字符串中汉字的个数?C#中使用正则表达式来从字符串中判断出汉字,然后计数,从而得到字符串中的汉字个数。先看这段代码://首先引
- 使用对象访问类中的成员:对象名.成员变量;对象名.成员方法();成员变量的默认值:具体实例代码:public class StudentTe
- 前言前段时间看到了豆瓣FM的音乐播放界面,有一个环形的进度条,非常的好看,于是想了想,为什么不自己做一个呢,于是就开始了自定义的过程豆瓣FM
- 此文通过一段代码来展示java获取相关参数的方法分享给大家:public static void main(String[] args) {
- 大数据量操作的场景大致如下:数据迁移数据导出批量处理数据在实际工作中当指定查询数据过大时,我们一般使用分页查询的方式一页一页的将数据放到内存
- Spring main方法调用Dao层和Service层的方法在web环境中,一般serviceImpl中的dao之类的数据库连接都由容器启