(完整版)数字图像处理C++MFC_第1页
(完整版)数字图像处理C++MFC_第2页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机科学与技术学院 信息与计算科学专业1 1 0 8 0 6 0 2 2 3姜 圣 涛2 01 4年5月1 3日图像处理学专学姓院:业:号:名:一、实验内容:主要是图像的几何变换的编程实现,具体包括图像的显示,图像 平移,图像的镜像,图像的旋转,图像的锐化,以及简单的处理等,例 如:灰度处理、减小灰度处理、逆反处理、霓虹处理等。具体实现的功能图为:旋转正变换显示处理镜像变换图像的锐化 显示原图像广灰度处理减小灰度LoadBitmap(IDB_BITMAP3); CDC *pDC = GetDC();mypDC-CreateCompatibleDC(pDC); mypDC-SelectObje

2、ct(bitmap);3、加入位图将待处理的照片格式转化成bmp格式,具体转化过程可借助画图工具完成,插入后的结果为:剑立怨S啊E芝石I-工层叵弓宦對Xc V)卷勺凹芷粘冃匕一 |皑區宙*厂kTxrlKtfwT(All diiti ii-finbEra w| |fl|iOnluxiaiig txcl resources*-jAccelerator tJBitmapIDB_BITMAP3:+ Dialog*_i loon+i Menu* oString Table+Toolbar41-JVersio n4、添加各种功能按钮,并建立类向导,添加完成后的界面为:-clrc JDBmnTM百P:軍fi

3、tmr-I自刍!郵 坐工(1)图片的显示核心代码为:void CTxclView:O ntuxia ng() / TODO: Add your comma nd han dler code here BITMAP bmp;bitmap-GetBitmap(&bmp); CDC *pDC = GetDC();COLORREF clr ;int x = bmp.bmWidth;int y = bmp.bmHeight;for(i nt i=0; iy; +i)for(i nt j=0; jGetPixel(j,i); int r = GetRValue(clr); in t g = Get

4、GValue(clr);int b = GetBValue(clr); pDC-SetPixel(j,i,RGB(r, g, b);结果为:(2)图像的简单灰度处理、逆反处理以、减小灰度处理、霓虹处理、增加灰度处理:A、灰度处理核心代码:void CTxclView:Onhuidu()/ TODO: Add your command handler code here BITMAP bmp;bitmap-GetBitmap(&bmp);clr = mypDC-GetPixel(j,i);CDC *pDC = GetDC();COLORREF clr ;int x = bmp.bmWid

5、th;int y = bmp.bmHeight;for(int i=0; iy; +i)for(int j=0; jGetPixel(j,i);int r = GetRValue(clr);int g = GetGValue(clr);int b = GetBValue(clr);int eva=(r+g+b)/3; pDC-SetPixel(j,i,RGB(eva, eva, eva);B、逆反处理核心代码:void CTxclView:Onnifan()/ TODO: Add your command handler code here BITMAP bmp;bitmap-GetBitma

6、p(&bmp);CDC *pDC = GetDC();COLORREF clr ;int x = bmp.bmWidth;int y = bmp.bmHeight;for(int i=0; iy; +i)for(int j=0; jSetPixel(j+300,i,RGB(r,g,b);C、减小灰度处理核心代码:void CTxclView:Onjianxiaohuidu()/ TODO: Add your command handler code hereBITMAP bmp; bitmap-GetBitmap(&bmp);CDC *pDC = GetDC(); COLORR

7、EF clr ; int x = bmp.bmWidth; int y =bmp.bmHeight; for(int i=0; iy; +i)for(int j=0; jGetPixel(j,i);int r = GetRValue(clr)*GetRValue(clr)/255; int g =GetGValue(clr)*GetRValue(clr)/255; int b =GetBValue(clr)*GetRValue(clr)/255;pDC-SetPixel(j+600,i,RGB(r, g, b);D、图形的霓虹处理核心代码:void CTxclView:Onnihong()/

8、TODO: Add your command handler code here BITMAP bmp;clr = mypDC-GetPixel(j,i);int r,g,b;bitmap-GetBitmap(&bmp);CDC *pDC = GetDC();COLORREF clra ;COLORREF clrb ;COLORREF clrc ;int x = bmp.bmWidth;int y = bmp.bmHeight;for(int i=0; iy; +i)for(int j=0; jGetPixel(j,i);clrb = mypDC-GetPixel(j,i+1);clr

9、c = mypDC-GetPixel(j+1,i);r=(int)sqrt(GetRValue(clra)-GetRValue(clrb)*(GetRValue(clra)-GetRValue(clrb) )+(GetRValue(clra)-GetRValue(clrc)*(GetRValue(clra)-GetRValue(clrc);g=(int)sqrt(GetRValue(clra)-GetRValue(clrb)*(GetRValue(clra)-GetRValue(clrb)+(GetRValue(clra)-GetRValue(clrc)*(GetRValue(clra)-Ge

10、tRValue(clrc);b=(int)sqrt(GetRValue(clra)-GetRValue(clrb)*(GetRValue(clra)-GetRValue(clrb)+(GetRValue(clra)-GetRValue(clrc)*(GetRValue(clra)-GetRValue(clrc);pDC-SetPixel(j,i+300,RGB(r, g, b);E、图形增大灰度处理核心代码:void CTxclView:OnZenghuidu()/ TODO: Add your command handler code hereBITMAP bmp;int r,g,b;bit

11、map-GetBitmap(&bmp);CDC *pDC = GetDC();COLORREF clr ;int x = bmp.bmWidth;int y = bmp.bmHeight;for(int i=0; iy; +i)for(int j=0; jSetPixel(j+300,i+300,RGB(r, g, b);图像的简单灰度处理、逆反处理以、减小灰度处理、霓虹处理、增加灰度处理结果对比:(3)图像的镜像变换A、垂直镜像变换的核心代码void CTxclView:O nchuizhijx()/ TODO: Add your comma nd han dler code her

12、eBITMAP bmp;bitmap-GetBitmap(&bmp);CDC *pDC = GetDC(); COLORREF clr ; int x = bmp.bmWidth; int y =bmp.bmHeight;for(int i=0; iy; +i)for(int j=0; jGetPixel(x-j,i);int r = GetRValue(clr);int g = GetGValue(clr);int b = GetBValue(clr); pDC-SetPixel(j+300,i,RGB(r, g, b);B、水平镜像变换的核心代码void CTxclView:Ons

13、huipingjx()/ TODO: Add your command handler code here BITMAP bmp;bitmap-GetBitmap(&bmp);CDC *pDC = GetDC(); COLORREF clr ;int x = bmp.bmWidth;int y = bmp.bmHeight;for(int i=0; iy; +i)for(int j=0; jGetPixel(j,y-i);int r = GetRValue(clr);int g = GetGValue(clr);int b = GetBValue(clr); pDC-SetPixel(

14、j+600,i,RGB(r, g, b);垂直镜像变换、水平镜像变换与原图对比结果(4)图像的锐化处理A、图像梯度增加方法一锐化处理核心代码:void CTxclView:O nTiDuZe ngqia ngyi()/ TODO: Add your comma nd han dler code hereBITMAP bmp;in t r,g,b; bitmap-GetBitmap(&bmp);CDC *pDC = GetDC();COLORREF clra ;COLORREF clrb ;COLORREF clrc ;int x = bmp.bmWidth;int y = bmp.bm

15、Height;for(i nt i=0; iy; +i)for(i nt j=0; jGetPixel(j,i);clrb = mypDC-GetPixel(j,i+1);clrc = mypDC-GetPixel(j+1,i);/int b = GetBValue(clra);intr=abs(GetRValue(clra)-GetRValue(clrb)+abs(GetRValue(clra)-GetRValue(clrc);pDC-SetPixel(j,i,RGB(r, r, r);B、图像梯度增加方法二锐化处理核心代码:void CTxclView:OnTiDuZengEr()/ TO

16、DO: Add your command handler code hereBITMAP bmp;int r,g,b;bitmap-GetBitmap(&bmp);CDC *pDC = GetDC();COLORREF clrb ;COLORREF clra ;COLORREF clrc ;int x = bmp.bmWidth;int y = bmp.bmHeight;for(int i=0; iy; +i)for(int j=0; jGetPixel(j,i);clrb = mypDC-GetPixel(j,i+1);clrc = mypDC-GetPixel(j+1,i);/in

17、t b = GetBValue(clra);int r=abs(GetRValue(clra)-GetRValue(clrb)+abs(GetRValue(clra)-GetRValue(clrc);if (rSetPixel(j+300,i,RGB(r, r, r);C、图像梯度增加方法一锐化处理核心代码:void CTxclView:OnTiduZengSan()/ TODO: Add your command handler code hereBITMAP bmp;int r,g,b;bitmap-GetBitmap(&bmp);CDC *pDC = GetDC();COLORR

18、EF clra ;COLORREF clrb ;COLORREF clrc ;int x = bmp.bmWidth;int y = bmp.bmHeight;for(int i=0; iy; +i)for(int j=0; jGetPixel(j,i);clrb = mypDC-GetPixel(j,i+1);clrc = mypDC-GetPixel(j+1,i);/int b = GetBValue(clra);int r=abs(GetRValue(clra)-GetRValue(clrb)+abs(GetRValue(clra)-GetRValue(clrc);if (r50)r=0

19、;elser=GetRValue(clra);pDC-SetPixel(j+600,i,RGB(r, r, r);D、Sobel算子锐化处理核心代码:void CTxclView:OnSobelSuanZi()/ TODO: Add your command handler code hereBITMAP bmp;int r,g,b;bitmap-GetBitmap(&bmp);CDC *pDC = GetDC();COLORREF clra,clrb,clrc ;COLORREF clra1,clrb1,clrc1 ;COLORREF clra2,clrb2 ;int x = bmp

20、.bmWidth;int y = bmp.bmHeight;for(int i=0; iy; +i)for(i nt j=0; jGetPixel(j-1,i+1);clrb = mypDC-GetPixel(j,i+1);clrc = mypDC-GetPixel(j+1,i+1);clra1 = mypDC-GetPixel(j-1,i-1);clrb1 = mypDC-GetPixel(j,i-1);clrc1 = mypDC-GetPixel(j+1,i-1);clra2 = mypDC-GetPixel(j+1,i);clrb2 = mypDC-GetPixel(j-1,i);int

21、 m =abs(GetRValue(clra)+2*GetRValue(clrb)+GetRValue(clrc)-GetRValue(clra1)-2*GetRValue(clrb1)-GetRValue(clrc1);int n =abs(GetRValue(clrc1)+2*GetRValue(clra2)+GetRValue(clrc)-GetRValue(clra1)-2*GetRValue(clrb2)-GetRValue(clra);int r = m+n;pDC-SetPixel(j,i+300,RGB(r, r, r);四种锐化处理结果为:(5)旋转变化采用的是45度角旋转正变换,核心代码为

温馨提示

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

评论

0/150

提交评论