急急, 关于图像处理的问题,请高手指教 !(200分)

  • 主题发起人 zhuoyuesky
  • 开始时间
Z

zhuoyuesky

Unregistered / Unconfirmed
GUEST, unregistred user!
如何对一幅灰度图作灰度均匀,请高手赐教!最好能给出代码。
并且为什么我将一幅24位的位图转为灰度图时有的象素R,G,B并不相等。灰度图的每一
个像素点的rgb值不是因该相等的么?
谁有delphi关于图像处理方面的资料,我在网上看到的都是vc的。谢谢
 
灰度=0.3R分量+0.59G分量+0.11B分量
 
引用以前:
DIB不是device independant bitmap吗?
和设备无关的, 在内存中.
DDB才和显存有关.
不用palette的话:
onedolphi的程序稍微修改了一下:
procedure Gray(bmp: TBitmap);
var
p: PByteArray;
w: Integer;
i, j: Integer;
begin
bmp.pixelformat := pf24bit;
for i := 0 to bmp.height - 1 do
begin
p := bmp.scanline;
j := 0;
while j < (bmp.width-1) * 3 do
begin
w :=(p[j] * 28 + p[j+1] * 151 + p[j+2]*77);
w := w shr 8;
p[j] := byte(w);
p[j+1] := byte(w);
p[j+2] := byte(w);
inc(j, 3)
end;
end;
end;

速度也够快了(800*600 < 0.5s).
 
多人接受答案了。
 
顶部