数字图像偏色检测及其校正快速实现
2013-03-09 17:39
519 查看
本人参考下面的文献实现了自己的偏色检测:
测控技术2008 徐晓昭等 基于图像分析的偏色检测及颜色校正方法
我的实现中,没有采用上述文献中的公式4,而是用另外的方法计算偏色因子K的值。这种修改可能与所实现的RGB到LAB空间转换的有关系。
我测试过openCv的rgb2lab的方法,openCv的lab取值区间均转换到0-255,通过转换到正常的LAB取值区间,及L为0-100,a,b为-128-127,发现结果与Photshop转换的结果相差迥异。而我的RGB到LAB的空间转换结果在绝大多数颜色上和Photoshop的转化结果相差1个像素。经过定点优化的RGB到LAB空间转换的速度非常之快。
2.1 首先根据偏色因子的偏色程度决定是否存在偏色,是否需要校正。
2.2 根据颜色分类A,B的均值确定到底是哪一种偏色。
2.3 根据不同的偏色情况,分别采用线性拉伸的策略把A,B的均值等效移位到分布中心的附近。
偏色因子 K = 2.3
校正之后:
偏色图像:
偏色因子: K= 1.96
偏色校正之后:
测控技术2008 徐晓昭等 基于图像分析的偏色检测及颜色校正方法
1. 偏色检测
在我的实现中,通过分析上述文献的思路,认为文献中的公式4有问题。我的实现中,没有采用上述文献中的公式4,而是用另外的方法计算偏色因子K的值。这种修改可能与所实现的RGB到LAB空间转换的有关系。
我测试过openCv的rgb2lab的方法,openCv的lab取值区间均转换到0-255,通过转换到正常的LAB取值区间,及L为0-100,a,b为-128-127,发现结果与Photshop转换的结果相差迥异。而我的RGB到LAB的空间转换结果在绝大多数颜色上和Photoshop的转化结果相差1个像素。经过定点优化的RGB到LAB空间转换的速度非常之快。
2. 颜色校正
上述文献中颜色校正的方法是对每一个通道,通过求解一个大规模的线性方程组得出校正系数,然后去校正。而我的实现方法极其简单。2.1 首先根据偏色因子的偏色程度决定是否存在偏色,是否需要校正。
2.2 根据颜色分类A,B的均值确定到底是哪一种偏色。
2.3 根据不同的偏色情况,分别采用线性拉伸的策略把A,B的均值等效移位到分布中心的附近。
3. 实验结果
偏色图像:偏色因子 K = 2.3
校正之后:
偏色图像:
偏色因子: K= 1.96
偏色校正之后:
4. 性能指标
本文算法在主频为800M的手机上,对于图片大小为640x480的图像,偏色检测+偏色校正总的处理时间小于100ms。相关文章推荐
- 数字图像偏色检测及其校正快速实现
- 数字图像偏色检测及其校正快速实现
- Java实现【快速离散余弦变换FDCT】参考:《图像数字水印的JAVA实现 刘剑鸣 著》
- VC编程实现数字图像的边缘检测
- 【数字图像处理】Canny边缘检测详解及编程实现
- VC编程实现数字图像的边缘检测
- 【数字图像处理】Canny边缘检测详解及编程实现
- VC编程实现数字图像的边缘检测
- Java实现【快速离散余弦变换FDCT】参考:《图像数字水印的JAVA实现 刘剑鸣 著》
- 图像处理之基础---卷积及其快速算法的C++实现
- 数字图像处理常用算法实现-霍夫线检测
- 【数字图像处理】Canny边缘检测详解及编程实现
- 【数字图像处理】Canny边缘检测详解及编程实现
- 【数字图像处理】Canny边缘检测详解及编程实现
- 【数字图像处理】直方图均衡化详解及编程实现
- (转)判断一个字符串是否全是数字的多种方法及其性能比较(C#实现
- 图像边缘检测之拉普拉斯(Laplacian)C++实现
- 数字电路中如何实现脉冲的边沿检测
- 数字图像处理基本软件VC++实现基本处理功能 (二)
- 滤波器——BoxBlur均值滤波及其快速实现