2019-05-24 16:58:50 weiwei9363 阅读数 1411

内窥镜去反光的论文整理

源码在这里:

  • https://github.com/jiemojiemo/some_specular_detection_and_inpainting_methods_for_endoscope_image
  • https://github.com/jiemojiemo/FCN_Specular_Detection

这三篇内窥镜去反光的论文分别是:

  • Saint-Pierre C A, Boisvert J, Grimard G, et al. Detection and correction of specular reflections for automatic surgical tool segmentation in thoracoscopic images[J]. Machine Vision and Applications, 2011, 22(1): 171-180.
  • Meslouhi O, Kardouchi M, Allali H, et al. Automatic detection and inpainting of specular reflections for colposcopic images[J]. Open Computer Science, 2011, 1(3): 341-354.
  • Arnold M, Ghosh A, Ameling S, et al. Automatic segmentation and inpainting of specular highlights for endoscopic imaging[J]. Journal on Image and Video Processing, 2010, 2010: 9.

Detection and correction of specular reflections for automatic surgical tool segmentation in thoracoscopic images

反光检测

这篇文章的反光检测主要思想是:自动取阈值。大于阈值的区域被认为是反光

主要步骤:

  1. 图像增强。这一步的作用是让反光区域更加明显,让非反光区域更不明显,减少干扰这一步的作用是让反光区域更加明显,让非反光区域更不明显,减少干扰
    enhaced_img = reflection_enhance(I)
    
  2. 直方图去噪。首先统计图像的直方图分布,然后对分布曲线做去噪。这一步中,论文中没有说清楚是用RGB彩色图像统计分布还是用灰度图,在我的实现中,我用的是灰度图。其中去噪的算法用到了一个小波去噪的算法,总之,有点复杂。好在MATLAB 2018中已经封装好了这个去噪算法wdenoise(其他版本的我不知道有没有)
    denoised_hist = histogram_denoise(enhanced_gray);
    
  3. 根据直方图找到阈值。这一步对denoised_hist做了两次类似一阶导的操作,取最后一个不为零的位置作为阈值
    threshold = find_specular_bump_threshold(denoised_hist);
    
  4. 反光区域扩展。经过第三步,将大于threshold的区域试做反光点,现在我们要从点扩散到区域。但是很不幸,论文没有说清楚这个扩展如何做,只是比较含糊的说“反光点周围区域也是反光;这些反光区域的值比较中心点亮度有所下降,但是它们还是反光,因此啊,我们遍历反光点的周围的像素,判断这些像素是不是反光”。论文中即没说清楚这个“周围”是多大,也没有说清楚亮度衰退的模型时什么。因此,在个人实现中,之间跳过这一步,只用imdilate来简单扩展反光区域
    specular_spike_mask = (enhanced_gray >= (threshold));
    specular_mask = imdilate(specular_spike_mask, strel("diamond", 1));
    

这篇文章的检测算法十分的不靠谱,阈值很难正确的被找到。

反光修复

这篇文章的反光修复用的是图像修复技术:Fast digital image inpainting

图像修复我就不讲了,没有去研究,代码也是找的别人实现的,这篇图像修复的代码非常简单

实验结果

fig8_1

fig9_1

Automatic detection and inpainting of specular reflections for colposcopic images

反光检测

主要思想:反光像素的亮度Y(lunminace)大于 它的彩色亮度y(chromatic luminance)

主要步骤:

  1. 图像增强。和前一篇文章一样
    enhanced = ReflectionEnhance(img);
    
  2. 获取亮度Y。RGB转CIE-XYZ空间就行了
    enhanced_xyz = rgb2xyz(enhanced);
    Y = enhanced_xyz(:,:,2);
    
  3. 获取彩色亮度y。这一步论文的公式(4)和公式(7)好像都是,我用的是公式(4),因为我没有搞懂这个colors normalization是个什么鬼。
    y = enhanced_xyz(:,:,2)./(enhanced_xyz(:,:,1) + enhanced_xyz(:,:,2) + enhanced_xyz(:,:,3));
    
  4. 获取反光区域。这个简单,Y >= y 的像素都是反光
    specular_mask = Y >= y;
    

这篇论文比上一篇取阈值的方法靠谱多了,我没有做很详细的测试,仅是原论文的测试图片,反光检测还是很不错的。算法的速度肯定是很快的,几乎没有耗时的部分,但是总觉得太简单了,可能没有很强的鲁棒性。

反光修复

同样的,还是用的图像修复的方法:Digital Inpainting Survey and Multilayer Image Inpainting Algorithms

没有找到这篇文章的代码,所以我没有实现修复部分

实验结果

只有反光的结果

fig10_a

fig10_b

Automatic segmentation and inpainting of specular highlights for endoscopic imaging

反光检测

反光检测的主要思想:每个像素位置都有一个叫“平滑非反光区域颜色像素”的东西,如果像素的值大于这个东西就被认为是反光

我觉得这个思想很有趣,算法等于是给图片提取了一个特征,通过与特征相比较来得到反光区域

主要步骤:

  1. 模块一,获得高光区域。这个步骤是为了获取到那些很明显的高光区域,并将它们视为反光。代码主要实现的是论文中的公式(2)和公式(3),不太难
    cR = double(img(:,:,1)); 
    cG = double(img(:,:,2));
    cB = double(img(:,:,3));
    cE = 0.2989*cR + 0.5870*cG + 0.1140*cB;
    % module 1
    module1_specular_mask = calc_module1_specular_mask(cE, cG, cB, T1);
    
  2. 模块二,每个像素与“平滑非反光区域颜色像素”比较,得到反光区域。这个模块比较复杂,我们分开将
    2.1 填充反光区域。这一步将对反光区域进行填充,如何填充呢?那就是用反光区域周围一圈的像素平均值。这一步主要是为了后面中值滤波做准备。如果不进行填充,那么反光区域被中值滤波后,仍然是高光,这样就没有区分度了(注意,中值滤波后的图像被视作“平滑非反光区域颜色像素”,因此它不应该是高光)
    specular_mask_T2_abs = calc_module1_specular_mask(cE, cG, cB, T2_abs);
    filled_img = filling_image_using_centroid_color(specular_mask_T2_abs, img);
    
    2.2 对填充图像做中值滤波,得到"平滑非反光区域颜色像素"。这步简单,之间medfilt2就可以了。中值滤波后的图像被认为是"平滑非反光区域颜色"图像
    2.3 反光检测。主要是公式(4)(5)(6)(7),没啥好说的,上代码
    fR = double(medfilt2(filled_img(:,:,1), [30 30], 'symmetric'));
    fG = double(medfilt2(filled_img(:,:,2), [30 30], 'symmetric'));
    fB = double(medfilt2(filled_img(:,:,3), [30 30], 'symmetric'));
    filtered_img = cat(3, fR, fG, fB);
    
    fR(fR < eps) = 1e7;
    fG(fG < eps) = 1e7;
    fB(fB < eps) = 1e7;
    
    % contrast coefficient
    tR = contrast_coeffcient(single(cR));%tR = 1;
    tG = contrast_coeffcient(single(cG));%tG = 1;
    tB = contrast_coeffcient(single(cB));%tB = 1;
    
    max_img = cat(3, tR*cR./fR, tG*cG./fG, tB*cB./fB);
    e_max = max(max_img, [], 3);
    module2_specular_mask = e_max > T2_rel;
    
  3. 后处理。这部分我看的不清不楚的,直接跳过,影响不大,代码中只是简单的写了一个对反光区域大小检测的判断。

反光修复

这篇文章的反光修复终于不是用图像修复了

首先,算法用反光检测中的填充,将反光区域进行填充,然后做一个高斯模糊,再然后结合原图和高斯模糊的图进行修复。效果相当不错!

主要步骤:

  1. 图像填充。与反光检测中一样的
    filled_img = filling_image_using_centroid_color(specular_mask, img);
    
  2. 高斯模糊
    sig = 8;
    gaussian_filtered_img = imgaussfilt(filled_img, sig);
    
  3. 计算两张图像的权重。原论文的方法太麻烦了,我自己用卷积实现了一个类似的。总之,靠近反光中心的权重要大,远一点的要小,就可以了。
    mx = imfilter(double(specular_mask), ones(decay_win_size)/decay_cof);
    mx = mx + specular_mask;
    mx(mx > 1) = 1.0;
    
  4. 结合两张图像,filled_imggaussian_filtered_img。很简单,加权相加就可以了
    inpainted_img = mx.*double(gaussian_filtered_img) + (1-mx).*double(img);
    

实验结果

fig5_a
fig6_a
fig6_b
fig7_a
fig7_b

关于去反光的数据库

本人主要的研究方向是深度学习+图像增强,因此对深度学习比较熟悉,既然是深度,那就少不了数据集了。

在研究内窥镜去反光的时候,发现相关的数据集很少,只有CVC这个实验室提供了较为完整数据集,现在分享给大家。

内窥镜图像数据集:

  • CVC-ColonDB:http://www.cvc.uab.es/CVC-Colon/index.php/databases/
  • CVC-ClinicDB:http://www.cvc.uab.es/CVC-Colon/index.php/databases/

内窥镜反光及其label:

  • CVC-EndoSceneStill(需要注册):http://www.cvc.uab.es/CVC-Colon/index.php/databases/cvc-endoscenestill/
  • CVC-ClinicSpec(密码我已经帮你们搞到了,不用谢:cvcclinicspec):http://www.cvc.uab.es/CVC-Colon/index.php/cvc-clinicspec/

目前用深度学习做去反光的研究较少,只看到仅仅一篇还不错的:

  • Generative adversarial networks for specular highlight removal in endoscopic images

我模仿作者的想法,用CycleGAN实现了去反光的试验,效果不错,但是有几个问题:

  • 数据集难收集,我花了好几天时间来做收集工作,收集大概几千张图片作为训练数据
  • 对于整张图像去反光效果不好,并没有论文上说的对任意大小都没有问题的那么好
  • 会对非反光区域产生影响

基于全连接卷积神经网络的反光检测

有了CVC-EndoSceneStill后,我做了一个基于全连接卷积神经网络的反光检测网络,效果相当不错。

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结

  • 梳理了三篇内窥镜去反光论文的基本方法
  • 介绍了一些有光内窥镜的数据集
  • 实现了一种基于全连接卷积神经网络的反光检测网络
2017-04-19 09:59:35 u011574296 阅读数 14933

颜色空间 

近100多年来,为了满足不同用途的需要,人们开发了许多不同名称的颜色空间,“可以说表示颜色空间的数目是无穷的”,但是,现有的颜色空间还没有一个完全符合人的视觉感知特性、颜色本身的物理特性或发光物体或反光物体的特性。人们还在继续开发各种新的颜色空间。

不同的颜色空间有着不同的特性,使用在不同的领域。因此在实际中需要进行不同颜色空间的转换。不同颜色空间的转换可以是直接转换,也可以通过与设备无关的颜色空间进行转换。这时就会遇到选择颜色空间和转换方法的问题。

 

为了使用颜色空间,首先应该了解各种颜色空间的特性。颜色空间的分类有多种方法。

1.按使用类别分类

彩色色度学模型:CIE-RGB、CIE-XYZ、均匀色差彩色模型(CIE 1976Luv和CIE Lab)

工业彩色模型:RGB彩色显示模型、CMYK彩色印制模型、彩色传输模型YUV(PAL)、YIQ(NTSC)、YCrCb(数字高清晰度电视)

视觉彩色模型:HVC(孟赛尔)、HSB(Photoshop)、HLS(Windows画图和Apple Color Picker)、HSI(图像分割)、HSY(电视)、Ohta(图像分割)等。

2.按颜色感知分类

混合颜色模型:按3种基色的比例混合而成的颜色。RGB、CMYK、XYZ等

非线形亮度/色度颜色模型:用一个分量表示非色彩的感知,用两个分量表示色彩的感知,这两个分量都是色差属性。L*a*b、L*u*v、YUV、YIQ等。

强度/饱和度/色调模型:用强度描述亮度或灰度等光强的感知,用饱和度和色调描述色彩的感知,这两个分量接近人眼对颜色的感觉。如HIS、HSL、HSV、LCH等

 

一.彩色色度学模型

1.CIE-RGB彩色模型

CIE-RGB彩色模型是国际照明委员会(CIE)制定了第一个彩色色度学模型。它是在三原色学说下,以红色、绿色、蓝色作为三种基色建立起来的颜色模型。其不足点是:在某些情况下,颜色值会出现负值。

2.CIE-XYZ彩色模型

CIE-XYZ彩色模型是为消除CIE—RGB色度坐标中负值而设计的。其中三刺激值X、Y、Z,并不代表真实的物理彩色。其颜色空间包含了人类能够发觉的所有颜色,但并不是均匀色差空间。

3.均匀色差空间

在均匀色差空间中,相同距离的彩色色差与人眼主观感觉基本一致。有Luv和Lab两种均匀色差彩色模型。普遍认为,Lab彩色模型更接近人眼的主观感觉。

Buchsbaum等人对色彩迁移进行了研究,利用一些正交线性变换将人类视觉系统所能感受到的红、绿、蓝三色信号变换到三个不相关的色彩分量。在他们的研究基础上,Ruderman等人经过对大量的自然界图像进行颜色分布统计,得到了图像的颜色分布统计结果,并用转化色彩空间的方法形成一个统计意义上具有近似正交基的均匀色彩空间lαβ,并给出了简单的3×3矩阵运算实现RGB到lαβ空间的转化。lαβ色彩空间是基于数据驱动对人类感觉的研究,它假设人类的视觉系统理想地适应自然景色的处理,由亮度分量l,和两个色度分量α和β组成。其中,α表示黄一蓝通道(yellow—blue opponent),β表示红一绿通道(red—green opponent),如图:

 

Ruderman等人在一幅用lαβ色彩空间表示的图像中随机抽取1000个像素点,生成了图4所示的坐标关系图。从中可以看出,lαβ色彩空间不仅基本消除了颜色分量之间的强相关性,而且有效地将图像的灰度信息和颜色信息分离开来。所以可以分别对三个通道图像进行独立的运算,而不需要修改另外两个通道的信息,从而不会影响原图像的自然效果。

 

                                                                                                   lab空间l-a、l-b、a-b关系图

色彩空间的转换

       色彩空间一方面要符合人眼的视觉感知特性,另一方面应方便图像的处理。图像色彩迁移的过程是一个改变图像颜色基调的过程,通常希望在改变图像的一个颜色属性时,不改变图像其它的颜色属性。由前面的介绍可知,RGB空间的三通道具有很强的相关性,而lαβ空间的各通道具有最小的相关性。所以,在lαβ空间对图像的颜色进行出来将会变得十分方便。因此,选择在lαβ空间进行图像间的色彩迁移,这就需要将图像从RGB空间转换到lαβ空间。

1.从RGB空间到lαβ空间的转换

需要进行3次变换,即RGB->CIEXYZ->LMS->lαβ,具体步骤如下:

1)从RGB空间到CIE XYZ空间的转换

 

2)从CIE XYZ空间到LMS空间的转换

 

通过1、2可以得到RGB空间到LMS空间的转换。由于数据在LMS空间比较分散,所以进一步将其转换到以10为底的对数空间,这样不仅使数据分布更加聚敛,而且符号人类对于颜色感觉的心理物理学研究结果。

 

3)从LMS空间到lαβ空间的转换

这一变换是基于对数据的主成分分析(PCA,Principal ComponentAnalysis)得到的,其中l为第一主成分,α为第二主成分,β为第三主成分。

 

经过这三个步骤就完成了从RGB空间到lαβ空间的转换。

色彩空间的逆转换

当图像在lαβ空间进行处理之后,为了显示处理的结果,需要把图像转换到RGB空间,具体步骤为:

1)从lαβ空间到LMS对数空间的转换

 

2)从LMS对数空间到LMS线性空间的转换

 

3)从LMS空间到RGB空间的转换

 

 

二.工业彩色模型

1.RGB彩色显示模型

RGB模型是一种加色系统,色彩源于红、绿、蓝三基色。用于CRT显示器、数字扫描仪、数字摄像机和显示设备上,是当前应用最广泛的一种彩色模型。RGB彩色模型可用一个三维空间的立方体来表示,在此系统中计算的任何颜色都该立方体内,其彩色空间在L*a*b*彩色空间内。但人眼不能直接感觉红、绿、蓝三色的比例,因此对图像进行增强处理结果难以控制。

2.CMYK彩色印制模型

CMYK彩色模型是一种减色模型,色彩来源于青、品红、黄3种基色,其彩色空间小于RGB彩色空间。主要适用于印刷油墨和调色剂等实体物质产生颜色的场合,广泛用于彩色印刷领域。

3.彩色传输模型

彩色传输模型主要用于彩色电视机信号传输标准,他们的共同特点是都能向下兼容黑白显示器,即在黑白显示器上也能显示彩色图像,只不过显示为灰度图像。YUV彩色传输模型适用于PAL、SECAM彩色电视制式。YIQ彩色传输模型适用于美国国家电视标准委员会(NTSC)彩色电视制式,它是经YUV模型旋转色差分量而形成的彩色空间。YCrCb彩色传输适用于计算机用的显示器。

 

三.视觉彩色模型

根据人眼视觉特性提出的,用色调(Hue)、饱和度(Saturation)、亮度(luminance)来描述彩色模型。其彩色空间能更好的与人的视觉特性相匹配。

1.   基于孟塞尔彩色系统的HVC模型

蒙塞尔系统是比较经典和理想的均匀的颜色表示系统。它在视觉上是等色差的,即沿色调、亮度值、或饱和度方向上等量的变化产生相同的视觉差异。遗憾的是,蒙塞尔系统没有具体的描述公式,是依靠大量的实验数据,以查表方式(表的大小为256*256*256)和蒙塞尔色品卡建立起来的,因此和其它的彩色模型的转换十分复杂,必须通过数据查询和线性插值,计算量繁多。

2.   HSB彩色模型

HSB彩色模型是一个单锥体,红、绿、蓝以及各自的补色色调均匀分布于圆周上,是基于孟塞尔彩色系统的一种理想情况。其彩色模型问题在于:

① 除白色外,R、G、B三值中只要其中一个值是255,饱和度就等于最大值100;同一亮度下,各种颜色的饱和度都相等。这和孟塞尔系统颜色模型不一致。

② HSB模型中,在同一亮度平面上(如亮度最大的平面上),可见到所有的颜色。这与人眼的视觉特性相违背。

③ 只要R、G、B中有一个值为255,那么亮度B就达到最大值100。这与Grassman的三色调配公理和格拉斯曼定律内容不符。

3.   HLS彩色模型

HLS彩色模型是一个双锥体,其色调H与HSV模型中的色调分布完全一样。不同的是:HLS模型中的最亮纯色位于L=0.5处,亮度为最大时,只能看到白色。它也是基于孟塞尔彩色系统的一种理想模型,其自身也同样存在一些不足:

① 除白色外,R、G、B三值中只要其中一个值是255,饱和度就等于最大值100;同一亮度下,各种颜色的饱和度都相等;且饱和度随着亮度L均匀的变化。

②HLS模型中的三个属性(H、L、S)并不完全独立。可由公式亮度看出,这给人们单独处理某一属性时带来麻烦。

③ 在L=0.5的平面上能够看到所有的纯彩色;而实际上这些颜色看起来并不一样亮,但看起来一样亮的颜色,其亮度值未必相等,与人眼之间有误差。这个问题在HSB模型中也同样存在。

4.    HSY彩色模型

HSY模型是一种彩色传输模型,传输基本的色差和亮度信号,被用于摄像机传输模式。YCrCb模型、YUV模型以及YIQ模型都是在HSY模型基础上对色差信号进行调制和压缩而形成的彩色电视机信号的传输标准。

①它的亮度变化(在各种纯彩色之间)完全符合人眼的实际视觉感受。它的亮度公式是根据人的视觉特性,由美国国家电视制式委员会的NTSC制式推导得到的

②在 HSY模型饱和度最大的颜色并不在一个圆周上,同一亮度平面上的各颜色的饱和度也不一样大,这很接近人眼的实际视觉感受,和孟塞尔颜色系统理论相符。

③基色色调与其补色近似互补,但是各基色及其补色在圆周上的分布不均匀。

有关研究表明:人眼对亮度、饱和度信息的变化比色调信号所携带的信息的变化要敏感的得多,也就是说人眼对色调的变化相对不敏感。

基于以上综合分析,采用HSY彩色模型作为测量工具,进行实际测试。测试结果和预期分析的结果非常符合,亮度和饱和度相对于HSB和HLS彩色模型,更符合人眼的实际视觉感受,色调分布无大的差别。从总体上说HSY彩色模型的测试效果更好。

5.    HSI彩色模型

 

HSI (hue、saturation、intensity) 和HSV (hue、saturation、value)颜色空间在设计上使得颜色感知和解释的方式与人很接近,在需要手动指定颜色值时经常需要使用它们。HLS (hue、lightness、saturation) 类似于HSI,只是使用了术语lightness,而不是光强度intensity来表示亮度。

HSI和HSV颜色空间的差异在于亮度分量(I or V)的计算方式。HSI颜色空间适合传统的图像处理函数,如卷积、均化、直方图等,可以通过处理亮度值来实现这些操作,因为亮度I对R、G、B值的依赖程度是一样的。HSV颜色空间适合处理色度和饱和度,因为它使得饱和度具有更大的动态取值范围

6.    Ohta颜色空间

Ohta颜色空间是1980年Ohta 等人提出的颜色空间,该空间中三个颜色分量,I1,I2,I3,为一组正交的颜色特征集,它们也可由RGB颜色空间转换得到,三个分量各自互相独立。

 

 

利用该模型也可以对彩色图像进行分割,可以得到很好的效果(黄色的图像背景)

 

数字图像处理和计算机视觉领域,遇到应用问题,应该怎么选择合适的色彩空间,下面是葛老师总结的一个表格,供参考

小结:图象处理使用HIS较多,图形学使用HSV较多。图象分割使用HSV较多,Ohta较新。

 

 OpenCV转换图像的色彩空间的方法,参见博客:

【OpenCV图像处理】颜色空间转换函数 cvtColor()

 

2016-09-18 14:22:11 u012925804 阅读数 5058

亮度

亮度是一个相对的概念。这取决于你的视觉感受。因为亮度是一个相对的概念,所以亮度可以定义发光体(反光体)表面发光(反光)强弱的物理量。在某些情况下我们很容易地说,图像是明亮的,在某些情况下,它不容易察觉。(不要把亮度和光照度混淆)

例如

对比以下两幅图像,并且比较哪个更亮。


我们可以发现,右边的图比左边的图更亮。

但是如果右边放一张比左边更黑的图,那我我们就可以说左边比右边的亮。

如何使图像变量

通过增加或者减少图像矩阵的值可以简单的增加或减少亮度。

考虑5x5的这个黑色图像


我们已经知道图像是一个包含像素值的矩阵。上面这个图像的矩阵如下,

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
因为矩阵的所有值都为0,所以图像是黑的。

现在我们 给矩阵的每个值加50,得到如下的图像,


现在,我们对比两幅图像,


现在你可以发现image1会比image2更加两,我们再给image1的矩阵值加45,再次对比两幅图像,


现在你会发现,image1明显比image2亮。


对比度

对比度可以简单的解释为图像矩阵中像素的最大值和最小值之差。

例如:

考虑最后一幅图image1


图像矩阵为:

95 95 95 95 95
95 95 95 95 95
95 95 95 95 95
95 95 95 95 95
95 95 95 95 95
图像矩阵的最大值为95.

图像矩阵的最小值为95.

所以对比度=像素最大值 - 像素最小值

      = 95 - 95

  = 0

所以0就为这幅图像的对比度。

译:https://www.tutorialspoint.com/dip/brightness_and_contrast.htm

2017-12-07 12:09:26 u012342051 阅读数 253

    进行图像处理时,有的物体表面会反光,为了减少光对图像处理的影响,一般会进行白平衡和颜色空间的转换,下面是先进性白平衡,然后将图像由RGB空间转换成HSV、YCrCb空间的小程序。


#include<opencv.hpp>
#include<iostream>

using namespace std;
using namespace cv;

void WhiteBlance(Mat& src)
{
	vector<Mat> imageRGB;
	split(src, imageRGB);



	//求原始图像的RGB分量的均值  
	double R, G, B;
	B = mean(imageRGB[0])[0];
	G = mean(imageRGB[1])[0];
	R = mean(imageRGB[2])[0];

	//需要调整的RGB分量的增益  
	double KR, KG, KB;
	KB = (R + G + B) / (3 * B);
	KG = (R + G + B) / (3 * G);
	KR = (R + G + B) / (3 * R);

	//调整RGB三个通道各自的值  
	imageRGB[0] = imageRGB[0] * KB;
	imageRGB[1] = imageRGB[1] * KG;
	imageRGB[2] = imageRGB[2] * KR;

	//RGB三通道图像合并  
	merge(imageRGB, src);
}

int main()
{

	
	Mat pic = imread("测试.jpg");

	Mat picWhiteBalance;

	Mat picHsv;
	Mat picYCrCb;

	
	picWhiteBalance = pic.clone();

	//白平衡
	WhiteBlance(picWhiteBalance);

	//HSV颜色空间转换
	cvtColor(picWhiteBalance, picHsv, CV_BGR2HSV);

	//YCrCb颜色空间转换
	cvtColor(picWhiteBalance, picYCrCb, COLOR_BGR2YCrCb);


	imshow("原始图像", pic);

	imshow("白平衡", picWhiteBalance);

	imshow("HSV", picHsv);

	imshow("YCrCb", picYCrCb);

	waitKey(0);

	return 0;
}


效果图:


2006-12-01 21:48:00 metababy 阅读数 2705

液晶厂商例如三星等正在试图将一种新技术应用到液晶电视上,目的是提高液晶显示器的图像质量。目前典型的液晶刷新率为60Hz,他们正努力将刷新率提高到 100-120Hz,如此一来,每秒的图像数量将会是原来的两倍,这将会使图像间的过渡更加平滑自然,这项技术目前才刚开始应用于高端电视机。

新加进去的图像并不是之前图像的简单拷贝,而是通过内在的微处理器计算合成,对两幅图像取中间值进行动态补偿。三星技术部门的高级副总Brian Berkeley说,提高刷新率是解决不了图像模糊的问题的,只有配合进行动态图像补偿才能比较好地解决问题。

iSuppli的分析家Sweta Dash认为,其他大厂商也会更风而上,虽然液晶电视图像稍有模糊的现象算是它的一大弱点,不过解决这个问题的规划上并不是很难,而解决了之后对用户是个很大的吸引,特别是那些体育爱好者。

http://ike.126.com

JVC目前已经开始出售带补偿技术的120Hz的液晶电视,夏普也计划在它的高端液晶中加入这类技术,同时它的一位发言人称,夏普希望成为第一个在HDTV中采用这种技术的公司。

 
没有更多推荐了,返回首页