下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 图形学灰度变换 Photoshop里的灰度变换可以使R,G,B 3色按任何比例增强再混合,原理和下面的差不多。黑白图片的黑白变换叫灰度变换,彩色图片的色彩变换也叫灰度变换,PhotoShop里叫色阶变换一幅彩色图像的象素矩阵中每个象素由RGB 3种颜色按一定的比例混合形成一种颜色来表示,比如黑色使RGB(0,0,0) ,纯红色是RGB(0,1,0).。在处理相片时,有时可能因为环境光源太暗,使RGB色的值偏小,就会使图形太暗看不清,如果环境光源太光,又使图像泛白,通过灰度变换,就可以使RGB值调和到合适的程度,使相片变得漂亮。变换原理是这样的:首先提取一幅图像的一个象素,在BMP格
2、式中一个象素由8位红色亮度值,8位绿色亮度值和8位蓝色亮度值组成,只要按一定的变换函数去变换这种3种颜色的亮度值就可以起到灰度变换的目的。比如线性变换可以用一个线性函数 f(x,y)=a'+(b'-a')/(b-a)×(f(x,y)-a)f(x,y)代表一个象素a,b是原始图像的灰度范围,a',b'是变换后新图像的灰度范围用这个线性函数分别对R,G,B分量进行变换可以起到单色增强的目的,然后再混合输出。如果b'-a' > b-a ,则使得图像灰度范围增大,即对比度增大,图像会变得清晰如果b'-a' <
3、 b-a ,则使得图像灰度范围缩小,即对比度减小。分段线性变换和线性变换差不多不过对于单一一个R或G或B分量采用分段函数进行变换。如f(x,y)=a'+(b'-a')/(b-a)×(f(x,y)-a) 当f(x,y)在a,b范围内f(x,y)=0
4、0; 当f(x,y)<mf(x,y)=255
5、; 当f(x,y)>n这样就指定了一个变换段 a,b,只有灰度在a,b段内的点才会增强,灰度<a的编程黑色,>b的变成白色。非线性变换可以根据需要制定非线性函数对灰度进行变换,典型的有 对数变换f(x,y)=a+ lnf(x,y)+1/(b×lnc) 这里a,b,c是参数而不是灰度范围了,对数变换用于扩展低灰度区指数变换f(x,y)=b(c*f(x,y)-a) ,a,b,c同样是参数,指数变换用来压缩低灰度区下面用BCB实现一个对256色无压缩BM
6、P图像的灰度变换 /-BCB6程序-#include <vcl.h>#pragma hdrstop#include<stdio.h>#include "Unit1.h"#include"File1.h"#pragma pack(1)/-强制结构用1字节对齐struct BITMAPFILEHEADER_ short type; int bfSize; short re1,re2;
7、160; int Offbits;struct BITMAPINFO_ long size; long width,height; short planes,bitCount; long comp,sizeImg; long xpels,ypels; long used,important;/-将BMP彩色表的数据校正到BCB TColor的数据。void SwitchColor(long &c) long
8、blue=c& 0x000000ff; long green=c& 0x0000ff00; long red=c& 0x00ff0000; c=(blue<<16) | green | (red>>16);/-线性灰度变换,rr,gg,bb为增强系数void st
9、rengthen (long &c,double rr,double gg,double bb) unsigned char r=(c & 0x00ff0000)>>16; unsigned char g=(c & 0x0000ff00)>>8; unsigned char b=(c & 0x000000ff); &
10、#160; unsigned char nr; unsigned char ng; unsigned char nb; if(rr*r>255) nr=255; else nr=rr*r
11、; if(gg*g>255) ng=255; else ng=gg*g; if(bb*b>255) nb=255;
12、60; else nb=bb*b; c=(nr<<16) | (ng<<8) | (nb);void xxx() FILE *f=fopen("F:FX3.bmp","rb"); if(f=NULL)
13、 /*判断文件是否打开成功*/ ShowMessage("File open error");
14、160; return; fseek(f,0,0);/移动到开头 /-读BMP文件头 BITMAPFILEHEADER_ *bmph=new BITMAPFILEHEADER_();
15、0; if(fread(char*)bmph,sizeof(BITMAPFILEHEADER_),1,f)=NULL) ShowMessage("File read error");
16、 return; /-读BMP信息头 BITMAPINFO_ *bmpi=new BITMAPINFO_(); if(fread(char*)bmpi,sizeof(BITMAPINFO_),1,f)=NULL) &
17、#160; ShowMessage("File read error2"); return;
18、160; /-读彩色表 long *c=new longbmph->Offbits-sizeof(BITMAPFILEHEADER_)-sizeof(BITMAPINFO_); fread(char*)c,bmph->Offbits-sizeof(BITMAPFILEHEADER_)-sizeof(BITMAPINFO_),1,f);
19、 /-显示一些信息 Form1->Edit1->Text=IntToStr(bmph->bfSize); Form1->Edit2->Text=IntToStr(bmpi->width); Form1->Edit3->Text=IntToS
20、tr(bmpi->height); Form1->Edit4->Text=IntToStr(bmpi->comp); Form1->Edit5->Text=IntToStr(bmpi->used); /-显示图形 unsi
21、gned char *p=new unsigned char4; int i=0,j=0,k=0,wc=0; TColor *tc; if(bmpi->width%4=0)/-因为BMP图像4字节对齐
22、; wc=bmpi->width/4; else wc=bmpi->width/4+1; for( i=0;i<bmpi->height;i+)
23、 for(j=0;j<wc;j+)
24、160; fread(p,4,1,f); for(k=0;k<4;k+)
25、60; long x=cpk;
26、160; /-这里开始增强色彩 strengthen(x,1.1,1.1,1.5); /1.1 1.1 和1.5 为RGB各分量的增强系数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土方施工方案范文(3篇)
- 珠宝-开业活动策划方案(3篇)
- 焗油玻璃施工方案(3篇)
- 2025年大学二年级(审计学)内部审计实务试题及答案
- 2025年中职语文教育(文学常识基础)试题及答案
- 2025年大学医学检验技术(临床生物化学检验)试题及答案
- 2025年高职(航空电子设备维修)飞机电子系统调试综合测试题及答案
- 2025年大学大四(广告学)广告效果评估试题及答案
- 2025年大学护理学(护理技能竞赛)试题及答案
- 2025年中职市场营销(市场营销基础知识)试题及答案
- GB/T 6074-2025板式链、连接环和槽轮尺寸、测量力、抗拉载荷和动载载荷
- 护理员职业道德与法律法规
- 2025年安徽省普通高中学业水平合格性考试化学试卷(含答案)
- 2025年宁波市公共交通集团有限公司下属分子公司招聘备考题库及答案详解参考
- 2026年关于汽车销售工作计划书
- 肿瘤放射治疗的新技术进展
- 2024外研版四年级英语上册Unit 4知识清单
- 视频会议系统施工质量控制方案
- 2025年高二数学建模试题及答案
- 2025年党的二十届四中全会精神宣讲稿及公报解读辅导报告
- 压力管道安装单位压力管道质量安全风险管控清单
评论
0/150
提交评论