图像灰度变换程序设计_第1页
图像灰度变换程序设计_第2页
图像灰度变换程序设计_第3页
图像灰度变换程序设计_第4页
图像灰度变换程序设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1度变换(Gray-ScaleTransformation,GST)处理是图像增强1度变换(Gray-ScaleTransformation,GST)处理是图像增强处理技术中一种非常基础、直(a′,b′g(x,yT[f(x,yD'T(Dg(x,y)T[f(x,y22.112-11与g(x,y)=T[f(x,y)]=af(x,y)+a=1且b0时,是所有图像的灰度值上移或下移,其效果是使整个图像更暗当a=1且b=0时,输出图像和输入图像相同;2.21当图像中大部分像素的灰度级在[L,U]LU的区域强 0255。尽管将会造成一部分信息丢失,不过有时为了某种应用,做这种“牺0;大于该窗口255。窗口灰度变换处理结合了双固定阈值法,与其不同之处在1用户的需要,拉伸特征物体的灰度细节,相对抑制不感兴趣的灰度级。图中的1用户的需要,拉伸特征物体的灰度细节,相对抑制不感兴趣的灰度级。图中的2-3x1x2y1y2之间。通过选1r代表图像中像素的灰度级,如果对它做归一化处理,r的值将在下述范围r代表图像中像素的灰度级,如果对它做归一化处理,r的值将在下述范围图像的灰度分布。对数字图来说,灰度级看成是离散的,归一化后的r取值范围为:(1)在[0,1]区间内是单值单调增加函数2由Pr(r)求出,变换后的图像灰度级的概率密度函数Ps(s)可由下式得到:或2(2)i从1开始,令s[i]=s[i-1]+p[i];1234.1134.11voidHuiDuBianHuanDib::FanSeBianHuan()//对图像进行反色变换{ intp_data=this->GetDatawide=this->GetWidth();height=this->GetHeight();for(int{unsignedchar *(p_data+i)=255-}}/*函数名称:Chuangkoubianhuan(BYTEblow,BYTE/*变量说明:blowbupvoidHuiDuBianHuanDib::Chuangkoubianhuan(BYTEbLow,BYTEbUp){//intint//LPBYTE//DIBint//LPBYTE//DIB wide=this->GetWidth();height=this->GetHeight();//for(i=0;i<height;{//for(j=0;j<wide;{//DIBi行,第jlpSrc=(LPBYTE)p_data+wide*(height-1-i)+//if((*lpSrc)<{//*lpSrc=}elseif((*lpSrc)>{//*lpSrc=}}}}/*函数名称:Zhexianbianhuan(BYTEbX1,BYTEbY1,BYTEbX2,BYTEbY1折点一的变换灰度;bY2voidHuiDuBianHuanDib::Zhexianbianhuan(BYTEbX1,BYTEbY1,BYTEbX2,voidHuiDuBianHuanDib::Zhexianbianhuan(BYTEbX1,BYTEbY1,BYTEbX2,BYTE{//intintwide; p_data=this->GetDatawide=this->GetWidth();LPBYTEtemp=new////for(i=0;i<=bX1; //[0——{if(bX1>0){//bMap[i]=(BYTE)bY1*i/}{//bMap[i]=}}for(;i<=bX2;{//(X1——if(bX2!=bX1){//bMap[i]=bY1+(BYTE)((bY2-bY1)*(i-bX1)/(bX2-}{bMap[i]=bY1;}}for(;i<256;}for(;i<256;{//(X2——if(bX2!=255){//bMap[i]=bY2+(BYTE)((255-bY2)*(i-bX2)/(255-}{//bMap[i]=}}{(m_pBitmapInfoHeader-//for(i=0;i<height;i{for(j=0;j<wide;j{//对像素进行灰度映射处理unsignedcharTtemp[wide*ij];temp[wide*i+j]=bMap[T];}}memcpy(p_data,}{//24temp=newBYTE[wide*height];//for(i=0;i<height;i{for(j=0;j<wide;j{//对像素进行灰度映射处理unsignedcharTtemp[wide*ij];temp[wide*i+j]=bMap[T];}}memcpy(p_data,}}memcpy(p_data,}}voidHuiDuBianHuanDib::Fenbujunhenghua(){循环变量LONGi;LONGj;LONGwide;LONGheight;//float//intnNs_R[256],nNs_G[256],nNs_B[256];//memset(temp_r,0,memset(temp_g,0,memset(temp_b,0,//DIBLPBYTEDIB图像象素起始位置p_data=this->GetData();wide=this->GetWidth();DIBheight=if(m_pBitmapInfoHeader-{////for(i=0;i<256;{if(i=={temp_r[0]=}{temp_r[i]=temp_r[i-1]+temp_r[0]=}{temp_r[i]=temp_r[i-1]+}nNs_R[i]=(int)(255.0f*temp_r[i]+}}{//24////for(i=0;i<256;{if(i=={temp_r[0]=fPs_R[0];temp_g[0]=fPs_G[0];temp_b[0]=}{temp_r[i]=temp_r[i-1]+fPs_R[i];temp_g[i]=temp_g[i-1]+fPs_G[i];temp_b[i]=temp_b[i-1]+}nNs_R[i]=(int)(255.0f*temp_r[i]+0.5f);nNs_G[i]=(int)(255.0f*temp_g[i]+0.5f);nNs_B[i]=(int)(255.0f*temp_b[i]+0.5f);}}if(m_pBitmapInfoHeader-{//for(j=0;j<height;j{for(i=0;i<wide;i{//DIBunsignedchartemp=*((unsignedchar*)p_data+wide*j+*((unsignedchar*)p_data+wide*j+i)=}}}{//24//for(j=0;j}}{//24//for(j=0;j<height;j{for(i=0;i<wide;i{//DIBunsignedchartemp1=*((unsignedchar*)p_data+wide*j*3+*((unsignedchar*)p_data+wide*j*3+i*3)=nNs_R[temp1];unsignedchartemp2=*((unsignedchar*)p_data+wide*j*3+i*3+1);*((unsignedchar*)p_data+wide*j*3+i*3+1)=nNs_G[temp2];unsignedchartemp3=*((unsignedchar*)p_data+wide*j*3+i*3+2);*((unsignedchar*)p_data+wide*j*3+i*3+2)=}}}}int{return}/*函数名称:Pipeibianhuan(BYTEbNum,intnpNuvoidHuiDuBianHuanDib::Pipeibianhuan(BYTEbNum,int*npNu,float*fpPu){循环变量LONGi;LONGj;LONGwide;//int//int//float//float//DIBLPBYTEDIB图像象素起始位置p_data=this->GetData();wide=this->GetWidth();DIBheight=if(m_pBitmapInfoHeader-{//////for(i=0;i<256;{if(i=={temp[0]=}{temp[i]=temp[i-1]+}gailu[i]=}//for(i=0;i<bNum;{if(i=={temp[0]=}{temp[i]=temp[i-1]+}fpPu[i]=}//for(i=}//for(i=0;i<256;{//intm_r=//floatmin_value_r=//for(j=0;j<bNum;{//floatnow_value= if(gailu[i]-fpPu[j]>=0.0f)now_value=gailu[i]-fpPu[j];now_value=fpPu[j]-//if(now_value<{//m_r=//min_value_r=}}//midu[i]=}for(j=0;j<height;j{for(i=0;i<wide;i{//unsignedchartemp=*((unsignedchar*)p_data+wide*j+*((unsignedchar*)p_data+wide*j+i)=}}}{//24//////for////for(i=0;i<256;{if(i=={temp[0]=gailu[0];temp3[0]=}{temp[i]=temp[i-1]+gailu[i];temp2[i]=temp2[i-1]+gailu2[i];temp3[i]=temp3[i-1]+}gailu[i]=temp[i];gailu2[i]=temp2[i];gailu3[i]=}for(i=0;i<bNum;{if(i=={temp[0]=}{temp[i]=temp[i-1]+}fpPu[i]=}//for(i=0;i<256;{//intm_r=0;intm_g=0;intm_b=//floatmin_value_r//floatmin_value_r=1.0f;floatmin_value_g=1.0f;floatmin_value_b=//for(j=0;j<bNum;{//floatnow_value= if(gailu[i]-fpPu[j]>=0.0f)now_value=gailu[i]-fpPu[j];now_value=fpPu[j]-//if(now_value<{//m_r=//min_value_r=} if(gailu2[i]-fpPu[j]>=0.0f)now_value=gailu2[i]-fpPu[j];now_value=fpPu[j]-//if(now_value<{//m_g=//min_value_g=} if(gailu3[i]-fpPu[j]>=0.0f)now_value=gailu3[i]-fpPu[j];now_value=fpPu[j]-//if(now_value<{//m_b=//min_value_b=}}//建立灰度映射表m_b=//min_value_b=}}//建立灰度映射表midu[i]=npNu[m_r];midu2[i]npNu[m_g];midu3[i]}//for(j=0;j<height;j{for(i=0;i<wide;i{//unsignedchartemp=*((unsignedchar*)p_data+wide*j*3+*((unsignedchar*)p_data+wide*j*3+i*3)=unsignedchartemp2=*((unsignedchar*)p_data+wide*j*3+*((unsignedchar*)p_data+wide*j*3+i*3+1)=midu[temp2];unsignedchartemp3=*((unsignedchar*)p_data+wide*j*3+i*3+2);*((unsignedchar*)p_data+wide*j*3+i*3+2)=}}}}4.2void{inti;//CDibNew1-// dlg2=new//for(i=0;i<256;dlg2=new//for(i=0;i<256;dlg2->m_fIntensity[i]=if(CDibNew1->m_pBitmapInfoHeader-{CDibNew1-}{//24CDibNew1-}}2void{inti;//CDibNew1-//创建对话框 //for(i=0;i<256;dlg2->m_fIntensity[i]=////////dlg.m_bLow=dlg.m_bUp=//if(dlg.DoModal()!=////////dlg.m_bLow=dlg.m_bUp=//if(dlg.DoModal()!={//}//bUp=dlg.m_bUp;//delete//调用WindowTrans()函数进行窗口变换{CDibNew1-}{//24CDibNew1-}}void{inti;//CDibNew1-void{inti;//CDibNew1-//创建对话框 //for(i=0;i<256;dlg2->m_fIntensity[i]=//CDlgZhexianbianhuan//1//2//dlgPara.m_bX1=dlgPara.m_bY1=dlgPara.m_bX2=dlgPara.m_bY2=//if(dlgPara.DoModal()!={//}//获取用户的设定bX2bY2=//delete//获取用户的设定bX2bY2=//delete (CDibNew1->m_pBitmapInfoHeader-{Zhexianbianhuan()函数进行灰度拉伸CDibNew1->Zhexianbianhuan(}{//24Zhexianbianhuan()函数进行灰度拉伸CDibNew1->Zhexianbianhuan(}}4void{inti;//CDibNew1-//创建对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论