分享ps颜色偏黄照片的修正原理和思路

       ps教程中偏黄照片有可能是相机白平衡失常导致的。拍摄时,能前期完全的尽量前期做,如果你会一些photoshop知识,也可以通过软件来校正颜色偏黄的照片。对PS感兴趣想学习交流的朋友可加PS学习交流群:142574315

第一,校正ps颜色偏黄的原理

  根据之前的调色原理知识,我们知道蓝色和黄色是相反色,一种颜色的增多势必引起其相反色的减少。因此颜色偏黄照片,可以增加蓝色,也可以降低红色和绿色来将偏黄照片进行校正。

  同时根据颜色相邻关系:蓝色=青色+洋红色。所以还可以对青色和洋红色进行调整。

第二,ps偏黄照片处理方法

  下面左图是原图,照片有些偏黄,右边是校正后的效果图。

ps颜色偏黄

  ps偏黄照片处理思路,通常是新建色彩平衡、曲线、可选颜色调整图层,三个命令都可以校正PS偏黄图像。

  具体的ps偏黄照片方法就不再一一介绍,就根据上面介绍的校正ps颜色偏黄的原理来进行调整就可以。

  1.曲线调整图层:分别选择红、绿、蓝通道单独调整,向上移动增加蓝色,向下移动降低红色和绿色。

  2.可选颜色调整图层:选择红、黄颜色,分别增加青色、洋红色。

  3.色彩平衡调整图层:照片中头发部分属于阴影,不需要过多调整。主要是针对高光和中间调分别调整,增加蓝色,降低红、绿。

clc; clear; close all; % 生成数据 % 原代码段: % [x, y, z] = peaks(200); % 修改为马鞍面函数: x_range = linspace(-3, 3, 200); % 创建-3到3的200点均匀分布 y_range = linspace(-3, 3, 200); [x, y] = meshgrid(x_range, y_range); % 生成网格矩阵 z = x.^2 - y.^2; % 马鞍面方程 z=x²-y² v = z/max(abs(z(:))) * 0.04; % 标准化到[-0.04,0.04]范围 % 使用peaks函数生成基础数据 % 绘制等值线填充图 contourf(v, 40, 'LineStyle', 'none') % 40级等值线,取消线条显示 % 设置颜色映射颜色条 colormap(jet) % 使用jet颜色映射(红--绿-蓝) caxis([-0.04 0.04]) % 固定颜色范围 cb = colorbar; cb.Label.String = '沉降速度 (m/a)'; cb.Ticks = -0.04:0.02:0.04; % 设置刻度位置 % 添加标题修饰 title('图8-2 模拟产生的沉降速度场') axis equal tight % 等比例坐标轴 set(gca, 'Visible', 'off') % 隐藏坐标轴 % 生成200个随机PS点坐标(在1到200范围内) num_ps = 200; ps_x = rand(num_ps, 1) * 199 + 1; % 生成1-200之间的x坐标 ps_y = rand(num_ps, 1) * 199 + 1; % 生成1-200之间的y坐标 hold on; % 绘制PS点(黑色圆点) plot(ps_x, ps_y, 'ko', 'MarkerSize', 4, 'MarkerFaceColor', 'k'); % 构建PS网络(距离限制连接) threshold = 40; % 连接距离阈值 distances = pdist2([ps_x, ps_y], [ps_x, ps_y]); % 计算欧氏距离矩阵 [row, col] = find(triu(distances < threshold, 1)); % 获取满足条件的点对索引 % 绘制连接线(浅灰色细线) for i = 1:length(row) line([ps_x(row(i)), ps_x(col(i))],... [ps_y(row(i)), ps_y(col(i))],... 'Color', [0.6 0.6 0.6], 'LineWidth', 0.3); end % 保持图形修饰一致性 set(gcf, 'Color', 'w'); % 设置白色背景 hold off; %% 高程修正模拟(新增代码段) % 生成高斯分布的高程修正量(均值为0,方差为3) sigma = sqrt(3); % 标准差=√方差 ps_z_correction = sigma * randn(num_ps, 1); % 生成200个修正值 % 可选:显示统计特征验证 fprintf('高程修正统计量:\n均值=%.4fm\n方差=%.4fm²\n标准差=%.4fm\n',... mean(ps_z_correction), var(ps_z_correction), std(ps_z_correction)); % 将修正量叠加到原始高程(假设原始高程为peaks生成的z值) % 获取PS点所在位置的高程索引 [~,idx] = min(pdist2([x(:),y(:)], [ps_x,ps_y]), [], 1); original_z = z(idx); % 提取原始地形高程 corrected_z = original_z + ps_z_correction; % 应用高斯修正 % 可视化高程修正分布(新增图形窗口) figure; histfit(ps_z_correction, 20); % 带拟合曲线的直方图 title('PS点高程修正量分布'); xlabel('高程修正量(m)'); ylabel('频数'); grid on; %% 干涉相位计算(续写部分) % 从表8-2获取雷达系统参数 lambda = 0.056; % 波长 (m) R_near = 5536.35965; % 近地点斜距 (m) 修正单位问题 theta = deg2rad(23); % 假设入射角23度(需根据实际情况调整) % 从表1获取基线参数(示例数据,请核对完整参数) time_baselines = [-2159,-2054,-1844,-1739,-1634,-1121,-946,-806,-771,... -770,-701,-700,-175,-70,-35,350,560,595,735,770,875,1295,1505,1540,1575]; % 时间基线(天) perp_baselines = [504,146,-36,274,-639,-207,178,505,-1144,-1000,... -1253,-1104,-762,-1239,-487,247,-348,-141,303,-158,290,-198,1048,144,-1021]; % 垂直基线(m) % 生成高程修正场(基于PS点插值) F = scatteredInterpolant(ps_x, ps_y, ps_z_correction, 'natural', 'none'); [x, y] = meshgrid(1:200, 1:200); delta_h = F(x,y); % 插值得到全场高程修正量 % 相位计算核心循环 for i = 1:length(time_baselines) % 时间参数转换 dt_year = (time_baselines(i)+2159)/365.25; % 转换到年单位 % 形变相位分量(全场计算) phi_def = (4*pi/lambda) * v * dt_year; % 高程相位分量(考虑基线空间相关) B_perp = perp_baselines(i)-504; phi_top = (4*pi/lambda) * (B_perp.*delta_h) ./ (R_near*sin(theta)); % 合成干涉相位(考虑相位缠绕) total_phase = mod(phi_def + phi_top, 2*pi); % 可视化设置 figure('Name',sprintf('Interferogram %02d',i),'Color','w'); imagesc(total_phase) colormap(jet) caxis([0 2*pi]) title(sprintf('干涉对%02d 相位图\n相对时间基线:%.1f年 相对垂直基线:%dm',... i,abs(dt_year),B_perp)) colorbar('Ticks',0:pi/2:2*pi,... 'TickLabels',{'0','π/2','π','3π/2','2π'}) axis equal off set(gca,'Position',[0.1 0.1 0.8 0.8]) % 添加PS网络叠加(可选) hold on plot(ps_x, ps_y, 'k.','MarkerSize',4) for k = 1:length(row) line([ps_x(row(k)),ps_x(col(k))],... [ps_y(row(k)),ps_y(col(k))],... 'Color',[0.6 0.6 0.6],'LineWidth',0.3); end hold off % 保存结果(可选) % print(sprintf('Intf_%02d.png',i),'-dpng','-r300') end %% 续写:施加不同噪声级别的干涉相位图 % 设定目标基线参数 target_dt_year = 3.7; % 时间基线3.7年 target_B_perp = 1; % 垂直基线1m % 计算相位分量(复用原始参数) phi_def = (4*pi/lambda) * v * target_dt_year; phi_top = (4*pi/lambda) * (target_B_perp * delta_h) ./ (R_near * sin(theta)); total_phase = mod(phi_def + phi_top, 2*pi); % 初始无噪相位 % 生成四幅噪声图 noise_sigmas = [0.00, 0.20, 0.50, 0.65]; % 噪声标准差序列 figure('Name','Noisy Interferograms','Color','w', 'Position', [100 100 1200 800]) for k = 1:4 % 添加相位噪声 sigma = noise_sigmas(k); phase_noise = sigma * randn(size(total_phase)); % 生成高斯白噪声 noisy_phase = mod(total_phase + phase_noise, 2*pi);% 带噪相位 % 绘制子图 subplot(2,2,k); imagesc(noisy_phase) colormap(jet) caxis([0 2*pi]) title(sprintf('σ=%.2f rad', sigma), 'FontWeight','bold') colorbar('Ticks',0:pi/2:2*pi,... 'TickLabels',{'0','π/2','π','3π/2','2π'}) axis equal off % 叠加PS网络 hold on plot(ps_x, ps_y, 'k.', 'MarkerSize', 4) for i = 1:length(row) line([ps_x(row(i)),ps_x(col(i))],... [ps_y(row(i)),ps_y(col(i))],... 'Color',[0.6 0.6 0.6],'LineWidth',0.3); end hold off end % 设置主标题 sgtitle(sprintf('相对时间基线%.1f年 相对垂直基线%.1fm 干涉相位噪声对比',... target_dt_year, target_B_perp), 'FontSize',14, 'FontWeight','bold')续写代码,要求在各级噪声水平下0.00, 0.20, 0.50, 0.65,0.80,分别从时序干涉图中提取出PS点上的干涉相位。基于PS差分相位观测值,采用VLT算法建立网络连接边,得到各边上的复相关系数,其绝对大小可作为网络基线边稳健性的评价指标。 相关系数越大,基线边的观测相位与PS差分模型吻合程度越高,得到的PS沉降速度差高程修正差越可靠。反之,基线估计精度越差。在不 同噪声级别下,对网络中所有基线的相关系数进行统计,得到其最大值 、 最小值 、 均值 、标准差,以此作为对不同噪声水平下网络基线连接稳健性的衡量指标。
最新发布
05-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值