打印本文 打印本文 关闭窗口 关闭窗口
图像的处理(一)----灰度图像像素颜色亮度处理
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2212  更新时间:2009/4/23 18:34:59  文章录入:mintao  责任编辑:mintao
    if I<=sbMin.Position then

      BarData[I]:=0

    else if I>=sbMax.Position then

      BarData[I]:=255

    else

      BarData[I]:=Round(255/(sbMax.Position-sbMin.Position)*(I-sbMin.Position));

  end;

  DrawBar;

  pbBarPaint(pbBar);

  Button1Click(Button1);

end;

四、变为黑白图片

在使用第三个功能的时候,你会发现当b<=a时,图像上的颜色除了黑色就是白色。这样操作的好处是不能直接显示出来的。这只要到了比较高级的图像处理如边缘检测等,才有作用。本例可以拿第三种方法的公式再变形,因此不作详细阐述。

五、指数级亮度调整

 

 

 

 

 

 

 

 

 

 

我们假设这个图的定义域是[0,1],值域也是[0,1]。那么,定义函数f(x)=x^c,则f(x)的图像有一段如上图。我们再用鼠标操作时,可以在上面取一点P(a,b),然后使f(x)通过点P,则c=ln(b)/ln(a)。有了c之后,我们就可以对颜色进行操作了:

New=(Old/255)^c*255=exp(ln(old/255)*c)*255

var ea,eb,ec:Extended;

    I:Integer;

begin

  ea:=A/255;

  eb:=B/255;

  ec:=Ln(eb)/Ln(ea);

  for I:=1 to 255 do

    BarData[I]:=Round(Exp(Ln((I/255))*ec)*255);

  DrawBar;

  pbBarPaint(pbBar);

  Button1Click(Button1);

end;

这样做可以调节图像的亮度。

 

先到这里,在下一篇文章中,我会向大家整理出彩色图像亮度调整的方法。

示例程序:http://vczh.cstc.net.cn/vczh/Article/A_Files/Gray256.rar  打开后按右键弹菜单

上一页  [1] [2] [3] 

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