产生原因

由于镜头原因导致光线丢失
注意红线:此时颜色就分离了

校正方法:

网格化或者半径化方法,用一张灰度图来储存增益,各个像素点×增益恢复到最终的情况,网格化的方法通过划分网格节约存储空间

代码:

不考虑像素存储

function LSCCalibrationM(path)lscRefImg = double(imread(path));tmp = ones(size(lscRefImg));corTab = (tmp ./ lscRefImg) * 0.8 * max(max(lscRefImg)); % 最大像素的80 %作为增益save('src/corTab.mat', 'corTab');
end

test:

lscRefImg = double(imread('images/lscRefImg.jpg'));
load('src/data/corTab.mat')
corImg = uint8(lscRefImg .* corTab);
figure;
subplot(121);imshow(uint8(lscRefImg));title('org');
subplot(122);imshow(corImg);title('corrected');

网格方法

clc;clear;close all;% --------parameters of calibretion------------
filePath = 'images/lscRefImg.jpg';
side_num = 17;
meshON = 1;
% ---------------------------------------------image = imread(filePath);
[height, width] = size(image);
side_y = floor(height/side_num);
side_x = floor(width/side_num);
h = imshow(image);
if meshONfor i = 1:side_num-1line([i*side_x, i*side_x], [1, height], 'color', 'r');line([1, width], [i*side_y, i*side_y], 'color', 'r');end
end
title('refImg');%% compress resolution
image_point = zeros(side_num+1,side_num+1);
for i = 0:side_numfor j = 0:side_numx_clip = floor([j*side_x - side_x/2, j*side_x + side_x/2]);y_clip = floor([i*side_y - side_y/2, i*side_y + side_y/2]);% make sure that the last point on the edgeif(i==side_num && y_clip(2) ~= height) y_clip(2) = height;endif(j==side_num && x_clip(2) ~= width) x_clip(2) = width;endx_clip(x_clip<1) = 1;x_clip(x_clip>width) = width;y_clip(y_clip<1) = 1;y_clip(y_clip>height) = height;data_in = image(y_clip(1):y_clip(2), x_clip(1):x_clip(2));image_point(i+1,j+1) = mean(mean(data_in));end
endGain = zeros(side_num+1,side_num+1);%% caculate lsc luma gain
for i = 1:side_num+1for j = 1:side_num+1Gain(i,j) = image_point(uint8(side_num/2) +1, uint8(side_num/2) +1) / image_point(i,j);end
end
save('./src/data/Gain.mat', 'Gain');

test:

%% --------------------------------
%% author:wtzhu
%% date: 20210706
%% fuction: main file of LSCMesh
%% --------------------------------
clc, clear, close all;
% --------parameters of correction------------
filePath = 'images/lscRefImg.jpg';
side_num = 17;
% --------------------------------------------% --------load data---------------------------
% load org image
image = imread(filePath);
[height, width] = size(image);
sideX = floor(height/side_num);
sideY = floor(width/side_num);% load gain of each channel
load('./src/data/Gain.mat');% --------------correction-------------------
disImg = zeros(size(image));
gainStepX = 0;
gainStepY = 0;
gainTab = zeros(size(image));
for i = 1:heightfor j = 1:widthgainStepX = floor(i / sideX) + 1;if gainStepX > 16gainStepX = 16;endgainStepY = floor(j / sideY) + 1;if gainStepY > 16gainStepY = 16;end% get tht gain of the point by interpolation(Bilinear interpolation)% f(x,y) = [f(1,0)-f(0,0)]*x+[f(0,1)-f(0,0)]*y+[f(1,1)+f(0,0)-f(1,0)-f(0,1)]*xy+f(0,0)gainTab(i, j) = (Gain(gainStepX+1, gainStepY) - Gain(gainStepX, gainStepY)) * (i - (gainStepX - 1) * sideX)/sideX +...(Gain(gainStepX, gainStepY+1) - Gain(gainStepX, gainStepY)) * (j - (gainStepY - 1) * sideY)/sideY +...(Gain(gainStepX+1, gainStepY+1) + Gain(gainStepX, gainStepY) - Gain(gainStepX+1, gainStepY)- Gain(gainStepX, gainStepY + 1)) *...(i - (gainStepX - 1) * sideX)/sideX * (j - (gainStepY - 1) * sideY)/sideY + Gain(gainStepX, gainStepY);end
end
disImg = double(image) .* gainTab;figure();
subplot(121);imshow(image);title('org image');
subplot(122);imshow(uint8(disImg));title('corrected image');

颜色为3通道的增益和测试

LSC(Lens Shading Correction)——镜头阴影矫正相关推荐

  1. (Lens Shading Correction)镜头阴影矫正,基于面阵工业相机GigE

    LSC (Lens Shading Correction)镜头阴影矫正 现象: 相机成像会出现中心亮,四周暗的现象:益或在RGB图中出现色彩不均匀的现象,这会为系统引入大量的噪声. 原因分析:这种现象 ...

  2. 【camera】【ISP】Lens Shading Correction镜头阴影校正

    ISP-LSC 镜头阴影校正 参考: https://zhuanlan.zhihu.com/p/389334269 https://blog.csdn.net/xiaoyouck/article/de ...

  3. ISP——LSC(Lens Shading Correction)

    ISP--LSC(Lens Shading Correction) 现象 如图所示就是拍摄纯灰色卡(正常所有像素值一样)时shading的具体现象,上侧称为Luma shading,下侧称为color ...

  4. ISP pipeline之lens shading correction

    lens shading基本概念 Lens Shading,一般称为镜头阴影或者镜头暗影,作为通常在成像中肉眼可见的现象一般也有两种,即图像中心和四周的亮度变化和图像中出现的偏色现象,如图所示,通常称 ...

  5. Lens Shading成因及相关

    一个监控摄像头光学处理包含以下几个部分:镜头(Lens)(定变焦镜头).红外截止滤波片(IR-cut filter)(红外截止滤光片和蓝玻璃滤光片为主).图像传感器(Image Sensor)和印制电 ...

  6. 【ISP】浅析Lens Shading

    [ISP]浅析Lens Shading 从2000年9月底摄像头首次出现在手机上算起,到如今成为诸多智能设备不可或缺的一部分,便携式手机摄像头已经走过了18年的发展历程.随着手机智能化.轻薄化的发展进 ...

  7. 海康工业相机镜头阴影矫正LSC

    海康工业相机镜头阴影矫正LSC 前言 海康工业相机SDK LSC算法矫正接口 SDK下载获取 代码流程简介 LSC标定文件生成 LSC矫正 矫正耗时测试 图像效果对比 LensShadingCorre ...

  8. ISP算法学习之LSC(镜头阴影校正)

    LSC(Lens Shading Correction)是ISP算法中的一个重要组成部分,用于校正镜头遮挡(lens shading)现象.镜头遮挡是由于镜头和图像传感器的光学特性导致的图像亮度不均匀 ...

  9. ISP中的Lens shading整理不易

    1.Len shading 1.1 Lens CRA 首先我们要明确一个概念CRA(Chief Ray Angle):CRA是Chief Ray Angle的缩写,意思是主光角.从镜头的传感器一侧,可 ...

最新文章

  1. CentOs6.5下独立安装Nginx篇
  2. idea常用但容易忘记的快捷键
  3. 对IP专用(私有)地址的理解!
  4. Python 爬虫十六式 - 第六式:JQuery的假兄弟-pyquery
  5. 夜间工作致癌的原因被发现:熬夜破坏了癌症相关基因的节律,导致DNA损伤增加、修复效率降低...
  6. 电脑删除的文件怎么恢复?你要找的方案
  7. simplexml php,PHP 使用 SimpleXML 遇到冒号「:」的解法
  8. java Http消息传递之POST和GET两种方法--通过实用工具类来获取服务器资源
  9. 网络工程交换技术之hsrp
  10. samba (centos6.5)服务
  11. Windows系统查询硬盘序列号
  12. rocketmq client端源码分析(2)-consumer实现
  13. 如何关闭mysql secure_file_priv
  14. 深度复数网络 Deep Complex Networks
  15. 管理QQ群,什么情况下适合用软件
  16. 软件测试面试-为什么选择软件测试?
  17. python调用sendcloud模板发送带附件的邮件
  18. 使用浏览器访问Socket服务器
  19. 贝恩2021技术报告:到2025年,30%的云服务供应商将专注于人工智能计算工作负载
  20. 解决在启动VirtualBox虚拟机时出现“未能启动虚拟电脑Ubuntu,由于下述物理网卡未找到:”的错误

热门文章

  1. 乌班图linux命令,乌班图Ubuntu常用命令及用法详解
  2. JVM基础知识和调优
  3. 心跳信号分类 ---参数调整
  4. 导数的定义_____一元函数的求导公式
  5. 有趣的马氏链及其平稳分布
  6. python读取mat文件并画图_[宜配屋]听图阁
  7. 二叉树的遍历及解题思路
  8. 常用的php函数与类
  9. php fck,PHP中调用FCK的方法
  10. Linux服务器如何做raid1,Linux下制作raid1