图像处理——白平衡(灰度世界方法)
2012-02-23 10:19
232 查看
转载请注明出处和作者,谢谢合作!!!
使用相机等采集图像的过程中,往往由于成像过程中的感光元件或者镜头会对原始色彩造成影响,为了校正这种光线和镜头对颜色影响,都会加入白平衡来对成像结果进行调整,那么今天就介绍一个最简单的白平衡处理方法:灰色世界方法
话不多说了,有不懂原理的可以留言,直接上测试通过的代码:
一下是测试图像(来源自网络):
原始图像(色调偏冷)
处理以后的图像(色调转暖):
谢谢您的支持,有任何的问题欢迎留言
使用相机等采集图像的过程中,往往由于成像过程中的感光元件或者镜头会对原始色彩造成影响,为了校正这种光线和镜头对颜色影响,都会加入白平衡来对成像结果进行调整,那么今天就介绍一个最简单的白平衡处理方法:灰色世界方法
话不多说了,有不懂原理的可以留言,直接上测试通过的代码:
im = imread('1.jpg','jpg'); im = double(im)./256; r = im(:,:,1); g = im(:,:,2); b = im(:,:,3); avgR = mean(mean(r)); avgG = mean(mean(g)); avgB = mean(mean(b)); avgGray = (avgR + avgG + avgB)/3; if avgR == 0 outR = r; else outR = (avgGray/avgR).*r; end if avgG == 0 outG = g; else outG = (avgGray/avgG).*g; end if avgB == 0 outB = b; else outB = (avgGray/avgB).*b; end maxRGB = [max(max(outR)) max(max(outG)) max(max(outG))]; factor = max(maxRGB); if factor > 1 outR = outR./factor; outG = outG./factor; outB = outB./factor; end GWoutIm(:,:,1) = outR; GWoutIm(:,:,2) = outG; GWoutIm(:,:,3) = outB; imshow(GWoutIm); imwrite(GWoutIm, 'testout.jpg', 'jpg'); avgIn1RGB = [mean(mean(r)) mean(mean(g)) mean(mean(b))]; avgGW1RGB = [mean(mean(outR)) mean(mean(outG)) mean(mean(outB))]; avgIn1 = mean([mean(mean(r)) mean(mean(g)) mean(mean(b))]); avgGW1 = mean([mean(mean(outR)) mean(mean(outG)) mean(mean(outB))]);
一下是测试图像(来源自网络):
原始图像(色调偏冷)
处理以后的图像(色调转暖):
谢谢您的支持,有任何的问题欢迎留言
相关文章推荐
- 【VS开发】【图像处理】基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果
- 图像处理中灰度变换方法总结
- 基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果
- 基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果
- 图像处理的方法列举(普通处理、灰度变换、图像锐化)
- 基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果
- 基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果
- 转的Silverlight的一些图像处理方法..不单是silverlight
- matlab 图像白平衡(世界灰度法)
- [转]使用C#进行图像处理的几种方法
- 数字图像处理的基本原理和常用方法
- Python与图像处理(2):灰度变换,直方图均衡化
- 图像处理方法的选用原则
- 图像处理中目标函数求解方法整理(更新一部分)
- c#图像处理-灰度处理(gray)
- 图像的处理(一)----灰度图像像素颜色亮度处理
- 在OpenCV某一个算子中考察某该算子的一个参数对图像处理的影响,通过循环从而选择最佳参数的方法
- 图像滤镜处理算法:灰度、黑白、底片、浮雕
- 图像滤镜处理算法:灰度、黑白、底片、浮雕
- 图像处理中的空间域处理方法