双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

在线等一个改变图片对比度的算法

qq100191677 qq100191677 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

/// <summary>
/// 图像亮度变化
/// value大于0图像变亮,value小于0图像变暗
/// value的取值范围是-255~255
/// </summary>
/// <param name="bitmap">原始图像</param>
/// <param name="value">亮度变化值:大于0图像变亮,小于0图像变暗value的取值范围是-255~255</param>
/// <returns>亮度变化后的图像</returns>
public static Bitmap Lightness(Bitmap bitmap, int value)
{

if (bitmap == null)
{
return null;
}

int width = bitmap.Width;
int height = bitmap.Height;

try
{

Bitmap bmpReturn = new Bitmap(width, height, PixelFormat.Format24bppRgb);

BitmapData srcBits = bitmap.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
BitmapData targetBits = bmpReturn.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);

unsafe
{
byte* pSrcBits = (byte*)srcBits.Scan0.ToPointer();
byte* pTargetBits = (byte*)targetBits.Scan0.ToPointer();
int stride = srcBits.Stride;
byte* pTemp;

for (int h = 0; h < height - 1; h++)
{
for (int w = 0; w < width - 1; w++)
{
int r, g, b;
int r1, g1, b1;
int r2, g2, b2;
pTemp = pSrcBits;
r = pTemp[2];
g = pTemp[1];
b = pTemp[0];
if (value >= 0)
{
r1 = r + ((255 - r) * value) / 255;
g1 = g + ((255 - g) * value) / 255;
b1 = b + ((255 - b) * value) / 255;
}
else
{
r1 = r + (r * value) / 255;
g1 = g + (g * value) / 255;
b1 = b + (b * value) / 255;
}

pTargetBits[2] = (byte)r1;
pTargetBits[1] = (byte)g1;
pTargetBits[0] = (byte)b1;

pSrcBits += 3;
pTargetBits += 3;
}

pSrcBits += srcBits.Stride - width * 3;
pTargetBits += srcBits.Stride - width * 3;
}
}
bitmap.UnlockBits(srcBits);
bmpReturn.UnlockBits(targetBits);

return bmpReturn;
}
catch
{
return null;
}
}
找个是处理亮度的,很好.能还原
我需要一个改变之后能还原的 改变对比度的算法
...全文

相关推荐

科技中介服务机构如何快速生成高质量科技成果推介书?.docx

科技中介服务机构如何快速生成高质量科技成果推介书?

BIZKEEN

制造企业AI智能体平台规划方案.pptx

制造企业AI智能体平台规划方案.pptx

公众号:优享智库

【顶刊TAC复现】事件触发模型参考自适应控制(ETC+MRAC):针对非线性参数不确定性线性部分时变连续系统研究(Matlab代码实现)

内容概要:本文提出了一种结合事件触发控制(Event-Triggered Control, ETC)与模型参考自适应控制(Model Reference Adaptive Control, MRAC)的先进控制策略,用于解决具有非线性参数不确定性及时变特性的线性连续系统的控制问题。该方法通过引入事件触发机制有效减少了控制器与执行器之间的通信频率,降低了资源消耗,同时利用MRAC在线估计并补偿系统中的未知参数和外部扰动,确保闭环系统的稳定性与优异的跟踪性能。文中详细阐述了控制律的设计过程、自适应律的构造以及基于李雅普诺夫稳定性理论的系统收敛性分析,并提供了完整的Matlab代码实现,便于读者复现并验证该方法在顶刊IEEE Transactions on Automatic Control(TAC)级别研究中的有效性。; 适合人群:具备扎实的自动控制理论基础、熟悉现代控制方法与李雅普诺夫稳定性分析,熟练掌握Matlab/Simulink仿真工具的研究生、高校教师及科研人员,特别适用于从事事件触发控制、自适应控制、鲁棒控制及智能控制等前沿方向的研究者。; 使用场景及目标:①复现并深入理解高水平控制领域期刊(如IEEE TAC)中关于ETC与MRAC融合的先进控制算法;②掌握事件触发机制在资源受限系统(如无线传感网络、嵌入式系统)中的设计与分析方法;③应用于航天器姿态控制、工业机器人、智能电网等存在参数时变、外部扰动及通信成本高昂的实际工程系统的控制设计与仿真验证。; 阅读建议:建议读者结合所提供的Matlab代码逐模块分析其实现逻辑,重点关注事件触发阈值的设计、自适应参数更新律的离散化处理以及李雅普诺夫函数的构造过程,并尝试在不同系统参数和扰动条件下进行仿真实验,以全面掌握该方法的性能边界与工程适用性。

程序猿鑫

国央企创新负责人在推动内部创新成果转化时,如何实现技术成果与外部市场需求的高效对接?.docx

国央企创新负责人在推动内部创新成果转化时,如何实现技术成果与外部市场需求的高效对接?

BIZKEEN

科技中介服务机构如何提升服务的智能化与专业化水平?.docx

科技中介服务机构如何提升服务的智能化与专业化水平?

BIZKEEN
评论 7
收藏 已收藏
分享
返回顶部
qq100191677
C# 111,129 成员 642,540 内容