delphi实现图象灰度处理的3种方法
来源:互联网 发布:sql中group by的用法 编辑:程序博客网 时间:2024/05/23 01:06
灰度处理的方法主要有如下3种:
R=G=B=max(R,G,B)
最大值法会使形成高亮度很高的灰度图象
varbitmap: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
平均值法会形成较柔和的灰度图象。
varbitmap: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,可以得到最合理的灰度图象
varbitmap: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;
- Delphi实现图象灰度处理的3种方法
- delphi实现图象灰度处理的3种方法
- 通过Delphi 实现图象的缩放
- Delphi灰度处理
- BMP图象(灰度图)转化为二维数组的C语言实现(bmp2array)
- delphi图像灰度化处理
- J2ME图象的处理
- java实现图象灰度转换,腐蚀,均衡化
- OpenCV中cvEqualizeHist实现灰度图象直方图均衡化
- 数字图像处理—空域变换增强之点操作(灰度变换) 方法一(直接灰度变换的五种方法)(灰度映射)
- 图象灰度算法
- 实现打印当前显示窗体的图象打印方法
- J2ME image 图象的处理
- Delphi图像处理 -- 灰度化和灰度直方图
- 由彩色图象,得到某一点的灰度值
- Delphi 中图象的放大和缩小
- delphi警告的处理方法
- Delphi图象截取编程示例(3)
- 录制终端操作并进行操作重现
- ORA-12571: TNS:packet writer failure
- 设计模式:空对象模式(Null Object Pattern)
- 更改Http请求中的内容
- 题目1003:A+B
- delphi实现图象灰度处理的3种方法
- [数据库基础]——编码标准之编码注意事项(持续更新)
- PHP+MySql环境配置
- Hibernate3.2(0) : Hibernate框架简介
- The 11th tip of DB Query Analyzer
- 已root手机在DDMS下无法读取data目录的解决办法
- Python针对目录操作的一点说明
- Lambda Expressions (基础概念非常全)
- Qt 5.1正式版发布