修复注释乱码
This commit is contained in:
@@ -1,19 +1,20 @@
|
||||
// ============================================================================
|
||||
// Copyright © 2026 Hexagon Technology Center GmbH. All Rights Reserved.
|
||||
// 譁�サカ蜷? HierarchicalEnhancementProcessor.cs
|
||||
// 謠剰ソー: 螻よャ。蠅槫シコ邂怜ュ撰シ悟渕莠主、壼ーコ蠎ヲ鬮俶民蛻�ァ」蟇ケ荳榊酔蟆コ蠎ヲ扈�鰍迢ャ遶句「槫シ?
|
||||
// 文件名: HierarchicalEnhancementProcessor.cs
|
||||
// 描述: 层次增强算子,基于多尺度高斯分解对不同尺度细节独立增强
|
||||
// 功能:
|
||||
// - 蟆�崟蜒丞�隗」荳コ螟壼アらサ�鰍螻?+ 蝓コ遑螻?
|
||||
// - 蟇ケ豈丞アらサ�鰍迢ャ遶区而蛻カ蠅樒�?
|
||||
// - 謾ッ謖∝渕遑螻ゆコョ蠎ヲ隹�紛蜥悟ッケ豈泌コヲ髯仙�?
|
||||
// - 将图像分解为多层细节层 + 基础层
|
||||
// - 对每层细节独立控制增益
|
||||
// - 支持基础层亮度调整和对比度限制
|
||||
// 算法: 多尺度高斯差分分解与重建
|
||||
// 菴懆? 譚惹シ� wei.lw.li@hexagon.com
|
||||
// 作者: 李伟 wei.lw.li@hexagon.com
|
||||
// ============================================================================
|
||||
|
||||
using Emgu.CV;
|
||||
using Emgu.CV.CvEnum;
|
||||
using Emgu.CV.Structure;
|
||||
using Serilog;
|
||||
using XP.ImageProcessing.Core;
|
||||
using Serilog;
|
||||
|
||||
namespace XP.ImageProcessing.Processors;
|
||||
|
||||
@@ -105,16 +106,16 @@ public class HierarchicalEnhancementProcessor : ImageProcessorBase
|
||||
int w = inputImage.Width;
|
||||
|
||||
// === 多尺度高斯差分分解(全部在原始分辨率上操作,无需金字塔上下采样) ===
|
||||
// 逕ィ騾貞「� sigma 逧�ォ俶民讓。邉顔函謌仙ケウ貊大アょコ丞��哦0(蜴溷崟), G1, G2, ..., G_n(蝓コ遑螻?
|
||||
// 扈�鰍螻?D_i = G_i - G_{i+1}
|
||||
// 用递增 sigma 的高斯模糊生成平滑层序列:G0(原图), G1, G2, ..., G_n(基础层)
|
||||
// 细节层 D_i = G_i - G_{i+1}
|
||||
// 重建:output = sum(D_i * gain_i) + G_n * baseGain
|
||||
|
||||
// 隶。邂玲ッ丞アら噪鬮俶�?sigma�域欠謨ー騾貞「橸シ?
|
||||
// 计算每层的高斯 sigma(指数递增)
|
||||
var sigmas = new double[levels];
|
||||
for (int i = 0; i < levels; i++)
|
||||
sigmas[i] = Math.Pow(2, i + 1); // 2, 4, 8, 16, ...
|
||||
|
||||
// 逕滓�蟷ウ貊大アょコ丞���loat 謨ー扈�シ碁∩蜈?Emgu float Image 逧�琉鬚假シ�
|
||||
// 生成平滑层序列(float 数组,避免 Emgu float Image 的问题)
|
||||
var smoothLayers = new float[levels + 1][]; // [0]=原图, [1..n]=高斯模糊
|
||||
smoothLayers[0] = new float[h * w];
|
||||
var srcData = inputImage.Data;
|
||||
@@ -131,7 +132,7 @@ public class HierarchicalEnhancementProcessor : ImageProcessorBase
|
||||
if (ksize < 3) ksize = 3;
|
||||
|
||||
using var src = new Image<Gray, byte>(w, h);
|
||||
// 莉惹ク贋ク螻?float 霓?byte 蛛夐ォ俶民讓。邉?
|
||||
// 从上一层 float 转 byte 做高斯模糊
|
||||
var prevLayer = smoothLayers[i];
|
||||
var sd = src.Data;
|
||||
Parallel.For(0, h, y =>
|
||||
@@ -180,7 +181,7 @@ public class HierarchicalEnhancementProcessor : ImageProcessorBase
|
||||
var result = new Image<Gray, byte>(w, h);
|
||||
var resultData = result.Data;
|
||||
|
||||
// 鬚�スャ謐?gains 荳?float
|
||||
// 预转换 gains 为 float
|
||||
var fGains = new float[levels];
|
||||
for (int i = 0; i < levels; i++)
|
||||
fGains[i] = (float)gains[i];
|
||||
@@ -209,4 +210,4 @@ public class HierarchicalEnhancementProcessor : ImageProcessorBase
|
||||
_logger.Debug("Process completed: {Levels} levels, output={W}x{H}", levels, w, h);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user