打印本文 打印本文 关闭窗口 关闭窗口
VB图像处理,(五)图像的色彩纠正
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1918  更新时间:2009/4/23 15:41:42  文章录入:mintao  责任编辑:mintao
>         .NewVal( 0) = 0                                     ''''色值最小的色彩总是为0,不参与计算
         L = 0
         For I = 1 To 255
            .ColRatio(I) = .ColorCount( I) * C + .ColRatio( L)      ''''进行加权
            .NewVal(I) = .ColRatio( I) * 255     ''''计算新的颜色索引
            L = L + 1
         Next

         For X = 0 To OutPutWid
            For Y = 0 To OutPutHei
               R = Colval(2, X, Y)                     ''''读取原来点的颜色
               G = Colval(1, X, Y)
               B = Colval(0, X, Y)
               R = .NewVal( R)                          ''''查表得到新的颜色
               G = .NewVal( G)
               B = .NewVal( B)
               ColOut(2, X, Y) = R                    ''''把新的颜色放到输出数组中
               ColOut(1, X, Y) = G
               ColOut(0, X, Y) = B
            Next
         Next

   End With

Done = True
TimeFilter = timeGetTime - TimeFilter
Exit Sub
ErrLine:
Done = True
MsgBox Err.Description
End Sub

如果读者对这个过程中的一些数组和变量不清楚,请参考我前面的几篇文章,其中有详细说明:
VB图像处理,(一)像素的获取和输出

VB图像处理,(二)二次线性插值的应用

VB图像处理,(三)几个常用滤镜的实现1

VB图像处理,(四)几个常用滤镜的实现2

下一篇将继续为大家讲述颜色对比度和亮度的调节算法,以及彩色图片转换到灰度图片的算法。
不要以为这个很简单,中间还是有一些小问题要注意的哦。

(这里只是说了我自己在写程序的时候用到的方法,存在很多的不足。并且因为在贴上来的时候作了部分修改,可能会存在部分错误,请各位高手不吝赐教,将您用到的更好的方法提供一下,我将不胜感激。)


 

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口