有專題提供"影像處理"的API嗎? |
答題得分者是:banson1716
|
speedboy
一般會員 發表:4 回覆:5 積分:1 註冊:2002-12-04 發送簡訊給我 |
|
mickeykai
一般會員 發表:2 回覆:7 積分:11 註冊:2002-11-17 發送簡訊給我 |
|
banson1716
高階會員 發表:55 回覆:182 積分:167 註冊:2002-04-14 發送簡訊給我 |
delphi實現圖像灰度處理的3種方法
灰度處理的方法主要有如下3種:
1、最大值法:使R、G、B的值等於3值中最大的一個,即:
R=G=B=max(R,G,B)
最大值法會使形成高亮度很高的灰度圖像 var
bitmap:tbitmap;
i,j:integer;
a,b,c,crgb,temp:longint;
res:byte;
begin //最大值灰度處理方法 bitmap:=tbitmap.Create;
bitmap.Width:=image1.Width 1;
bitmap.Height:=image1.Height 1;
for i:=0 to image1.Width 1 do
begin
for j:=0 to image1.Height 1 do
begin
crgb:=colortorgb(image1.Canvas.Pixels[i,j]);
a:=crgb;
b:=crgb shr 8;
c:=crgb shr 8;
//求出3者之間的最大值
if a>b then
temp:=a
else temp:=b;
if c>temp then
temp:=c ;
res:=byte(temp);
bitmap.Canvas.Pixels[i,j]:=rgb(res,res,res);
end;
end;
image1.Canvas.Draw(0,0,bitmap);
bitmap.Free;
end;
2、平均值方法:使R、G、B的值求出平均值,即: R=G=B=(R G B)/3
平均值法會形成較柔和的灰度圖像。
var
bitmap:tbitmap;
i,j:integer;
crgb:longint;
rr,gg,bb:byte;
res:byte;
begin
//圖像的平均值處理
bitmap:=tbitmap.Create;
bitmap.Width:=image1.Width;
bitmap.Height:=image1.Height;
for i:=0 to image1.Width 1 do
begin
for j:=0 to image1.Height 1 do
begin
crgb:=colortorgb(image1.Canvas.Pixels[i,j]);
rr:=byte(crgb);
gg:=byte(crgb shr 8);
bb:=byte(crgb shr 8);
res:=(rr gg bb)div 3;
bitmap.Canvas.Pixels[i,j]:=rgb(res,res,res);
end;
end;
image1.Canvas.Draw(0,0,bitmap);
bitmap.Free;
end; 3、加權平均值法:根據重要性或其他指標給R、G、B賦予不同的權值,並使R、G、B它們的值加權平均,即: R=G=B=(WrR WrG WbB)/3,經實際經驗和理論推導證明,采用R=G=B=0.30*R 0.59*G 0.11*B,可以得到最合理的灰度圖像 var
bitmap:tbitmap;
i,j:integer;
rr,gg,bb,res:byte;
crgb:longint;
begin
//加權平均處理方法
bitmap:=tbitmap.Create;
bitmap.Width:=image1.Width 1;
bitmap.Height:=image1.Height 1;
for i:=0 to image1.Width 1 do
begin
for j:=0 to image1.Height 1 do
begin
crgb:=colortorgb(image1.Canvas.Pixels[i,j]);
rr:=byte(crgb);
gg:=byte(crgb shr 8);
bb:=byte(crgb shr 8);
res:=(30*rr 59*gg 11*bb)div 100;
bitmap.Canvas.Pixels[i,j]:=rgb(res,res,res);
end;
end;
image1.Canvas.Draw(0,0,bitmap);
bitmap.Free;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |