关于灰度计算(50分)

  • 主题发起人 主题发起人 fuku
  • 开始时间 开始时间
F

fuku

Unregistered / Unconfirmed
GUEST, unregistred user!
要计算指定区域的灰度级别:
是否需获取该区域中所有像素的RGB值,转换成灰度然后平均一下?
如果是这样的话,从RGB值到灰度的转换公式又是怎么样的?
 
正如你所说的,下面是将一幅位图转换为灰度图:

procedure ConvertToGrayGraphic(var Bmp: TBitmap);
var
p :PByteArray;
Gray,x,y :Integer;
begin
for y:=0 to Bmp.Height-1 do
begin
p:=Bmp.scanline[y];
for x:=0 to Bmp.Width-1 do
begin
Gray:=Round(p[x*3+2]*0.3+p[x*3+1]*0.59+p[x*3]*0.11); //这是转换公式
p[x*3]:=Gray;
p[x*3+1]:=Gray;
p[x*3+2]:=Gray;
end;
end;
end;
 
接受答案了.
 
后退
顶部