手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>VB>列表

VB图像处理之图像的色彩纠正

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

40:3 / 9×255=85
50:5 / 9×255=141
100:7 / 9×255=198
200:8 / 9×255=226
250:9 / 9×255=255
   这时我们得到了新的图:

100 50 20 198 141 20
20 40 50 >> 10 85 141
100 250 200 198 255 226
   原图中相对出现频率多的部分的宽度变大了。而出现较少的部分则变窄了。

   所以,灰度直方图均衡的作用就是把一张图片上出现多的色彩拓展,而把出现少的色彩压缩。

   从而得到了更“均衡”的色彩分布。

   下面附上我的例程:

Private Type ColorChart
  ColorCount(255) As Long '统计原来图片中的亮度出现次数
  PixcelCount As Long '记录图片的像素个数
  ColRatio(255) As Single '记录每一个亮度的出现比例
  NewVal(255) As Byte '存放新的亮度索引
End Type

Dim ColChart As ColorChart

Public Sub StatisticsChart()
  Dim R As Byte
  Dim G As Byte
  Dim B As Byte
  Dim Gray As Integer
  Dim X As Long
  Dim Y As Long
  Dim I As Long
  Dim L As Long
  Dim M As Long
  Dim C As Double
  On Error GoTo ErrLine

  Done = False
  TimeFilter = timeGetTime
  With ColChart
   For X = 0 To 255 '先把数组清零
    .ColorCount(X) = 0
   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)
     Gray = R * 3 G * 6 B
     Gray = Gray \ 10
     .ColorCount(Gray) = .ColorCount(Gray) 1
    Next
   Next

   .PixcelCount = X * Y '获得图片的像素总量
   C = 1 / .PixcelCount

   .ColRatio( 0) = .ColorCount(M, 0) * C '计算每个亮度的出现比例
   .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图像处理之几个常用滤镜的实现

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!