图像处理实验图像的灰度化处理及亮度的调整

合集下载

处理灰度照片的方法

处理灰度照片的方法

处理灰度照片的方法
处理灰度照片的方法有以下几种:
1. 灰度化:将彩色照片转换为灰度图像。

可以使用公式将彩色图像的RGB通道值进行加权平均,或者使用专门的灰度转换算法,如使用YUV颜色空间中的亮度分量进行灰度化。

2. 对比度调整:可以通过直方图均衡化或对比度拉伸等方法来增强图像的对比度。

直方图均衡化是一种常用的方法,它通过重新分配图像的灰度级来增强图像的对比度。

3. 滤波处理:可以使用各种滤波器对图像进行平滑或锐化处理。

常用的滤波器包括均值滤波器、高斯滤波器、中值滤波器等。

4. 边缘检测:可以使用边缘检测算法,如Sobel算子、Canny算子等,来提取图像中的边缘信息。

5. 图像修复:可以使用图像修复算法来修复灰度图像中的缺失或损坏的部分。

常用的图像修复算法包括基于纹理合成、基于图像修复模型等方法。

6. 图像增强:可以使用各种图像增强算法来增强图像的细节和清晰度,如锐化、增强边缘等。

以上是一些常用的处理灰度照片的方法,具体选择哪种方法取决于具体的应用需求和图像处理的目标。

图像处理---灰度处理(黑白效果)

图像处理---灰度处理(黑白效果)

图像处理---灰度处理(⿊⽩效果)转⾃:1.效果图:2.实现原理:图像灰度化就是使⾊彩的三种颜⾊分量R、G、B的值相同,由于颜⾊值的取值范围是[0,255],所以灰度的级别只有256种,即灰度图象仅能表现256种灰度颜⾊,常⽤有3种处理⽅法:*最⼤值法(Maximum):R=G=B=Max(R,G,B),这种⽅法处理后灰度图象的亮度会偏⾼。

*平均值法(Average):R=G=B=(R+G+B)/3,这种⽅法处理后灰度图象的亮度较柔和。

*加权平均值法(Weighted Average):R=G=B=w r*R+w g*G+w b*B,w r、w g、w b分别为R、G、B的权值。

当其权值取不同的值时,能够形成不同灰度的灰度图象,由于⼈眼对绿⾊的敏感度最⾼,红⾊次之,蓝⾊最低,因此当w g > w r > w b时,所产⽣的灰度图像更符合⼈眼的视觉感受。

通常w r=30%,w g=59%,w b=11%,图像的灰度最合理。

以下的程序使⽤的是w r=70%,w g=20%,w b=10%觉得效果更好。

3.实现代码:1public enum AlgorithmsType2 {3 MaxValue, //最⼤值法4 AverageValue, //平均值法5 WeightAverage //加权平均值法6 }public static Image Gray(Image img, AlgorithmsType algo){int width = img.Width;int height = img.Height;Bitmap bmp = new Bitmap(img);//设定实例BitmapData相关信息Rectangle rect = new Rectangle(0, 0, width, height);ImageLockMode mode = ImageLockMode.ReadWrite;PixelFormat format = PixelFormat.Format32bppArgb;//锁定bmp到系统内存中BitmapData data = bmp.LockBits(rect, mode, format);//获取位图中第⼀个像素数据的地址IntPtr ptr = data.Scan0;int numBytes = width * height * 4;byte[] rgbValues = new byte[numBytes];//将bmp数据Copy到申明的数组中Marshal.Copy(ptr, rgbValues, 0, numBytes);for (int i = 0; i < rgbValues.Length; i += 4){int value = 0;switch (algo){//最⼤值法case AlgorithmsType.MaxValue:value = rgbValues[i] > rgbValues[i + 1] ? rgbValues[i] : rgbValues[i + 1];value = value > rgbValues[i + 2] ? value : rgbValues[i + 2];break;//平均值法case AlgorithmsType.AverageValue:value = (int)((rgbValues[i] + rgbValues[i + 1] + rgbValues[i + 2]) / 3); break;//加权平均值法case AlgorithmsType.WeightAverage:value = (int)(rgbValues[i] * 0.1 + rgbValues[i + 1] * 0.2+ rgbValues[i + 2] * 0.7);break;}//将数组中存放R、G、B的值修改为计算后的值for (int j = 0; j < 3; j++){rgbValues[i + j] = (byte)value;}}//将数据Copy到内存指针Marshal.Copy(rgbValues, 0, ptr, numBytes);//从系统内存解锁bmpbmp.UnlockBits(data);return (Image)bmp;}4.说明:使⽤GetPixel⽅法和SetPixel⽅法的实现参考使⽤不安全模式参考⽅法⼀;本例实现⽅法与⽅法⼆相同。

数字图像处理实验报告(图像灰度变换处理)

数字图像处理实验报告(图像灰度变换处理)

数字图像处理实验报告班级:姓名:学号:数字图像处理实验报告一.实验名称:图像灰度变换二.实验目的:1 学会使用Matlab;2 学会用Matlab软件对图像灰度进行变换,感受各种不同的灰度变换方法对最终图像效果的影响。

三.实验原理:Matlab中经常使用的一些图像处理函数:读取图像:img=imread('filename'); //支持TIFF,JPEG,GIF,BMP,PNG,XWD等文件格式。

显示图像:imshow(img,G); //G表示显示该图像的灰度级数,如省略则默认为256。

保存图片:imwrite(img,'filename'); //不支持GIF格式,其他与imread相同。

亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in至high_in之间的值映射到low_out至high_out之间,low_in 以下及high_in以上归零。

绘制直方图:imhist(img);直方图均衡化:histeq(img,newlevel); //newlevel表示输出图像指定的灰度级数。

像平滑与锐化(空间滤波):w=fspecial('type',parameters);imfilter(img,w); //这两个函数结合将变得十分强大,可以实现photoshop里的任意滤镜。

图像复原:deconvlucy(img,PSF); //可用于图像降噪、去模糊等处理。

四.实验步骤:1.获取实验用图像:Fig3.10(b).jpg. 使用imread函数将图像读入Matlab。

2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 0.105+2.6333(r–0.35) 0.35 ≤ r ≤ 0.65 1+0.3(r–1) r > 0.65用T1对原图像Fig3.10(b).jpg进行处理,打印处理后的新图像。

数字图像处理实验02图像灰度级修正

数字图像处理实验02图像灰度级修正

数字图像处理实验02图像灰度级修正一、数字图像处理实验实验二图像灰度级修正一、实验目的掌握常用的图像灰度级修正方法,即图象的灰度变换法和直方图均衡化法,加深对灰度直方图的理解。

观察图象的增强效果,对灰度级修正前后的图像加以比较。

二、实验内容1. 编程实现图像的灰度变换。

改变图像输入、输出映射的灰度参数范围(拉伸和反比),观看图像处理结果。

2. 修改可选参数gamma 值,使其大于1、等于1和小于1,观看图像处理结果。

3. 对图像直方图均衡化处理,显示均衡前后的直方图和图像。

三、实验原理灰度级修正是图像空间域的增强方法,它以图像的灰度映射变换为基础,直接对图像中的像素进行处理,主要是利用点运算来修改图像像素的灰度。

其变换函数通常可写作如下的简单形式:)(r T s = (2.1)其中,r 表示图像f 中相应点(x,y)的灰度,s 表示图像g 中相应点(x,y)的灰度。

1. 灰度变换1)图像增强常用的三个基本灰度变换类型函数有:线性的(正比和反比)、对数的(对数和反对数变换)、幂次的(n 次幂和n 次方根变换)。

线性变换为最一般的函数。

假定原图像),(y x f 的灰度范围为],[b a ,希望变换后图像),(y x g 的灰度范围扩展至],[d c ,则线性变换可表示为公式(2.2)所示:图1.2 灰度范围的线性变换2)幂次变换用于图像获取、打印和显示的各种装置根据幂次规律进行响应。

幂次变换的基本形式为:γcr s = (2.3)其中s 为变换后的图像灰度级,c 和r 为正常数。

当1==r c 时,将简化为正比变换。

幂次等式中的指数是指伽马值。

用于修正幂次响应现象的过程称作伽马校正。

2. 直方图均衡化直方图均衡是直方图修正技术中的一种常用的方法。

1) 采用灰度频数直方图统计一幅数字图像在范围],0[G 内总共有L 个灰度级,其直方图定义为离散函数k k n r h =)( (2.4)其中,k r 是区间],0[G 内的第k 级亮度,k n 是灰度级为k r 的图像中的像素数。

数字图像处理实验 图像生成及取反 图像亮(灰)度变换

数字图像处理实验  图像生成及取反 图像亮(灰)度变换

数字图像处理实验报告实验一图像处理入门实验:图像生成及取反1、【实验目的】了解matlab有关图像的基本操作,如图像的读写,显示等。

熟悉调试环境。

2、【实验步骤】(1)Matlab workspace中生成一幅大小为512×512像素的8位灰度图, 背景为黑色,中心有一个宽40像素高20像素的白色矩形。

(2)将这幅图像保存为文件test.bmp。

•从文件test.bmp中读出图像到变量I。

•在Matlab图形界面中显示变量I所代表的图像。

•将获得的图像的格式分别转换为“*.tif”、“*.jpg”的格式保存,检查图像文件数据量的大小。

•将图片保存或拷贝到MATLAB程序组根目录的“work”文件夹中,以便后面的实验利用。

•将test.bmp 编程取反,观察效果。

3、【实验源码】(1)图像生成B=zeros(512,512)(2) 在图像中生成宽40像素高20像素的白色矩形for i=246:266for j=246:266B(i,j)=1;endend(3)图像保存imwrite(B,'test.bmp')(4)读出图像到变量I并另存为“*.tif”、“*.jpg”的格式e=imread('test.bmp')imshow(e)imwrite(e,'test.tif')imwrite(e,'test.jpg')(5)将test.bmp 编程取反for j=1:512for k=1:512if(i(j,k)==255)i(j,k)=0;elsei(j,k)=255;end;endend4、【实验截图】查看文件大小将test.bmp 编程取反5、【实验小结】(1)通过本次实验,对Matlab软件处理图像的相关功能有了初步了解。

(2)在灰度图像的取反操作中,可以使用双重循环,对每一行每一列的象素值进行更改操作。

实验二图像亮(灰)度变换1、【实验目的】灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。

图像处理实验图像的灰度化处理及亮度的调整

图像处理实验图像的灰度化处理及亮度的调整

重庆交通大学数字图像处理与通信课程实验报告班级:实验项目名称:图像的灰度化处理及亮度的调整实验项目性质:设计性实验实验所属课程:数字图像处理与图像通信实验室(中心):网络实验中心指导教师:实验完成时间:2012年10月16日教师评阅意见:签名:年月日实验成绩:一、实验目的:1、熟悉matlab或者C#的编程环境,完成在相关环境下图像的读入、显示、保存等操作;2、完成图像的灰度化处理;3、完成图像的亮度调整的模块编写;4、完成图像的平移操作(选做)。

二、实验主要内容及要求:1、熟悉matlab软件的工作窗口及命令;2、通过matlab软件,对一幅图像进行读入,显示,保存,并对其做灰度化处理;3、对图像进行亮度调整以及图像的平移。

三、实验设备及软件:PC机一台,MATBLAB软件。

四、设计方案:通过对图像灰度化处理的算法,将图像的像素值进行线性变换,以及将三维彩色图像转变为二维图像,即实现了将图像灰度化处理。

以及增加(降低)像素的值,可以对图像进行亮度的增(减)。

对图像进行平移时,可以利用一个生成的零矩阵,将需要平移的图像的像素值按其列或按其行进行递增赋值与零矩阵,即实现了对图像向左右或者向上下的平移。

五、主要代码及必要说明:1、对图像灰度化f=imread('Winter.jpg');figure(1);imshow(f);for x=1:600for y=1:800g(x,y)=0.3*f(x,y,1)+0.59*f(x,y,2)+0.11*f(x,y,3);end;end;figure(2);imshow(g);2、对图像进行平移clc;clear;a=imread('house.jpg');b=im2double(a);si=size(b);m=si(1);n=si(2);figure,imshow(b);g1=zeros(m,n);for x=m:-1:51for y=n:-1:51g1(x-50,y-50)=b(x,y);endendfigure,imshow(g1);六、测试结果及说明:通过利用以上代码,对图像进行了灰度化处理,平移处理,其实验结果如下所示:此图为原图像,图像为彩色图像,通过以上处理,将其变为灰色图像,如下所示:灰度化处理后的图像平移后的图像七、心得体会:实验结束时,对于本次实验的内容,总算有了初步的理解和掌握,尽管只是第一次对图像做简单的处理,但是,我从中还是学到了很多东西,而且感觉到学有所用以及这门课程的高深莫测。

图像的处理----灰度图像像素颜色亮度处理以前看了一些有关图像

图像的处理----灰度图像像素颜色亮度处理以前看了一些有关图像

图像的处理(一)----灰度图像像素颜色亮度处理以前看了一些有关图像处理的书,对我起到了很大的帮助。

所以,今天我就将我学过的知识整理出来,一方面可以给人学习,另一方面也可以请各位高手指点指点。

我要说的图像处理是针对程序方面的。

所以,先做一个程序来放置图形。

在这里,我使用了Delphi作为工具。

因为,在我使用过的众多编译器当中,Delphi对图形的支持最好。

还有,这里我并不是讲语法。

所以,有些代码我就不详细说明。

不便之处,敬请原谅。

注意:本文章的示例程序所用的东西不超过GDI的范围。

在图像处理中,速度是很重要的。

因此,我们得重新处理一下TBitmap,得到TVczhBitmap。

这只是因为GetPixels和SetPixels的速度太慢,换一个方法而已。

unit untBitmapProc;interfaceuses Graphics, SysUtils;typeTVczhBitmap=class(TBitmap)privateData:PByteArray;Line:Integer;procedure SetFormat;function GetBytePointer(X,Y:Integer):PByte;procedure SetBytes(X,Y:Integer;Value:Byte);function GetBytes(X,Y:Integer):Byte;protectedpublishedconstructor Create;publicproperty Bytes[X,Y:Integer]:Byte read GetBytes write SetBytes;procedure LoadFromFile(FileName:String);procedure ToGray;end;implementationprocedure TVczhBitmap.SetFormat;beginHandleType:=bmDIB;PixelFormat:=pf24bit;end;function TVczhBitmap.GetBytePointer(X,Y:Integer):PByte;beginif Line<>Y thenbeginLine:=Y;Data:=ScanLine[Y];end;Longint(result):=Longint(Data)+X;end;procedure TVczhBitmap.SetBytes(X,Y:Integer;Value:Byte); beginGetBytePointer(X,Y)^:=V alue;end;function TVczhBitmap.GetBytes(X,Y:Integer):Byte;beginresult:=GetBytePointer(X,Y)^;end;constructor TVczhBitmap.Create;begininherited Create;SetFormat;Line:=-1;end;procedure TVczhBitmap.LoadFromFile(FileName:String); begininherited LoadFromFile(FileName);SetFormat;Line:=-1;end;procedure TVczhBitmap.ToGray;var X,Y,R:Integer;B:Byte;beginfor Y:=0 to Height-1 dofor X:=0 to Width-1 dobeginR:=0;for B:=0 to 2 doR:=R+GetBytes(X*3+B,Y);for B:=0 to 2 doSetBytes(X*3+B,Y,R div 3);end;end;end.此后,我们需要建立几个窗体。

关于图形图像处理实训报告总结【九篇】

关于图形图像处理实训报告总结【九篇】

关于图形图像处理实训报告总结【九篇】实训报告总结:图形图像处理实训图形图像处理实训是计算机科学与技术专业的基础课程之一。

通过本次实训课程,我深入了解了图形图像处理的基本概念、方法和技术,并通过实际操作来提升了自己的实践能力。

下面是对本次实训的九篇报告总结:1. 实验一:图像读取与显示本次实验主要是学习如何读取和显示图像,以及使用Matplotlib库进行图像展示。

通过实验,我掌握了图像读取和显示的基本方法,并学会了基本的图像处理操作。

2. 实验二:图像的灰度变换实验二主要是学习图像的灰度变换,包括线性变换和非线性变换。

我学会了如何使用不同的灰度变换函数来调整图像的亮度和对比度,进一步提升图像的质量。

3. 实验三:图像的空间域滤波本次实验主要是学习图像的空间域滤波技术,包括均值滤波、中值滤波和高斯滤波等。

通过实验,我掌握了不同滤波方法的原理和实现方式,并学会了如何选择合适的滤波方法来降噪和模糊图像。

4. 实验四:图像的频域滤波实验四主要是学习图像的频域滤波技术,包括傅里叶变换和频域滤波等。

通过实验,我了解了傅里叶变换的原理和应用,并学会了如何使用频域滤波来实现图像的锐化和平滑。

5. 实验五:图像的形态学处理本次实验主要是学习图像的形态学处理技术,包括腐蚀、膨胀、开运算和闭运算等。

通过实验,我学会了如何使用形态学操作来改变图像的形状和结构,进一步改善图像的质量。

6. 实验六:图像的边缘检测实验六主要是学习图像的边缘检测技术,包括Sobel算子、Laplacian算子和Canny算子等。

通过实验,我了解了不同边缘检测方法的原理和应用,并学会了如何使用边缘检测来提取图像的轮廓和特征。

7. 实验七:图像的分割与聚类本次实验主要是学习图像的分割与聚类技术,包括阈值分割、区域生长和K均值聚类等。

通过实验,我掌握了不同分割与聚类方法的原理和应用,并学会了如何使用分割与聚类来识别和分析图像中的目标和区域。

8. 实验八:图像的特征提取与描述子实验八主要是学习图像的特征提取和描述子技术,包括尺度不变特征变换(SIFT)和方向梯度直方图(HOG)等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

重庆交通大学数字图像处理与通信课程实验报告
班级:
实验项目名称:图像的灰度化处理及亮度的调整实验项目性质:设计性实验
实验所属课程:数字图像处理与图像通信
实验室(中心):网络实验中心
指导教师:
实验完成时间:2012年10月16日
教师评阅意见:
签名:年月日实验成绩:
一、实验目的:
1、熟悉matlab或者C#的编程环境,完成在相关环境下图像的读入、显示、
保存等操作;
2、完成图像的灰度化处理;
3、完成图像的亮度调整的模块编写;
4、完成图像的平移操作(选做)。

二、实验主要内容及要求:
1、熟悉matlab软件的工作窗口及命令;
2、通过matlab软件,对一幅图像进行读入,显示,保存,并对其做灰
度化处理;
3、对图像进行亮度调整以及图像的平移。

三、实验设备及软件:
PC机一台,MATBLAB软件。

四、设计方案:
通过对图像灰度化处理的算法,将图像的像素值进行线性变换,以及将三维彩色图像转变为二维图像,即实现了将图像灰度化处理。

以及增加(降低)像素的值,可以对图像进行亮度的增(减)。

对图像进行平移时,可以利用一个生成的零矩阵,将需要平移的图像的像素值按其列或按其行进行递增赋值与零矩阵,即实现了对图像向左右或者向上下的平移。

五、主要代码及必要说明:
1、对图像灰度化
f=imread('Winter.jpg');
figure(1);
imshow(f);
for x=1:600
for y=1:800
g(x,y)=0.3*f(x,y,1)+0.59*f(x,y,2)+0.11*f(x,y,3);
end;
end;
figure(2);
imshow(g);
2、对图像进行平移
clc;clear;
a=imread('house.jpg');
b=im2double(a);
si=size(b);m=si(1);n=si(2);
figure,imshow(b);
g1=zeros(m,n);
for x=m:-1:51
for y=n:-1:51
g1(x-50,y-50)=b(x,y);
end
end
figure,imshow(g1);
六、测试结果及说明:
通过利用以上代码,对图像进行了灰度化处理,平移处理,其实验结果如下所示:
此图为原图像,图像为彩色图像,通过以上处理,将其变为灰色图像,如下所示:
灰度化处理后的图像
平移后的图像
七、心得体会:
实验结束时,对于本次实验的内容,总算有了初步的理解和掌握,尽管只是第一次对图像做简单的处理,但是,我从中还是学到了很多东西,而且感觉到学有所用以及这门课程的高深莫测。

通过本次实验,使得我基本上了解了使用matlab对图像处理的流程,从而知道了以后在对图像处理的时候知道该如何去操作此软件,但是所不足的是,对理论性知识掌握程度不够。

因为刚开始学数字图像处理这门课程的时候,书本里的东西全部是理论性的,没有实践性的操作,本以为数字图像处理会像photoshop 那样,利用软件对一幅图像直接进行处理,通过这次的实验才发现,这门课程也是用软件来操作,所不同的是使用的matlab要去编写操作的代码,来对图像进行所要的操作。

我会在以后的学习中,更加努力,注重理论性的学习,对图像的处理更加具体、更加有针对性的、精确性的操作。

增强使用MATLAB的能力。

相关文档
最新文档