当前位置:文档之家› 数字图像处理实验报告(一)

数字图像处理实验报告(一)

数字图像处理实验报告(一)
数字图像处理实验报告(一)

实验题目:图像文件读取(js实现)

1.实验目的

使用javascript读取图像文件并显示出来(结合canvas)

2.实验内容

1)加载图像文件,通过Canvas读取图像的像素值并存入矩阵(或数组)

2)通过Canvas写操作在页面中渲染像素

3.实验原理

HTML5的canvas提供了getImageData接口来获取canvas中的数据,所以我们能够先用drawImage接口将图片画在canvas上然后再通过getImageData得到图片数据矩阵。

注意:虽然IE9开始支持了canvas接口,但是其getImageData获取的数据并不是以标准的TypedArray方式存储的,或者说IE9没有提供对WebGL Native binary data的支持,所以如果需要运行实例,浏览器版本需要更高的版本,推荐:Chrome 10+ , IE 10+ , Firefox

4+ ,Opera 11.64+ , Safari 5.1+。

4.实验步骤

1)建立基本矩阵

在图像处理中,矩阵计算是非常重要的内容,所以我们首先来建立一个矩阵模型。

通过getImageData接口获取的ImageData虽然具有类似矩阵的结构,但是他的结构是不可变的,不适合扩展,所以我们选择在Javascript中自建一个矩阵。

代码如下:

function Mat(__row, __col, __data, __buffer){

this.row = __row || 0;

this.col = __col || 0;

this.channel = 4;

this.buffer = __buffer || new ArrayBuffer(__row * __col * 4);

this.data = new Uint8ClampedArray(this.buffer);

__data &&this.data.set(__data);

this.bytes = 1;

this.type = "CV_RGBA";

}

说明:

row - 代表矩阵的行数

col - 代表矩阵的列数

channel - 代表通道数量,因为通过getImageData获取的图片数据是以RGBA

色彩空间进行描述的,即有Red(红)、Green(绿)、Blue(蓝)和Alpha(不透明度)四个通道。

buffer - 数据所用的ArrayBuffer引用。

data - 图片的Uint8ClampedArray数组数据。

bytes - 每个数据单位占用字节,因为是uint8数据类型,所以占用字节数为1。

type - 数据类型是CV_RGBA。

2)图片数据转成矩阵

function imread(__image){

var width = __image.width,

height = __image.height;

iResize(width, height);

iCtx.drawImage(__image, 0, 0);

varimageData = iCtx.getImageData(0, 0, width, height),

tempMat = new Mat(height, width, imageData.data);

imageData = null;

iCtx.clearRect(0, 0, width, height);

return tempMat;

}

注意:这里的__image指的是Image对象,不是字符串URL。因为浏览器中Image的读取是一个异步过程,并不能立刻返回相应的Mat对象,所以这个函数应当这样使用:

varimg = new Image();

img.onload = function(){

varmyMat = imread(img);

};

img.src = "1.jpg";

iCtx和iResize方法是一个全局变量,允许给其它函数公用,其中iCtx表示Canvas的2D画布,iResize用于调整画布的大小,具体代码略;

以上函数中出现的getImageData函数用于从canvas画布读取图像的像素:

数据以RGBA色彩格式返回的,即:

1)R:红色像素的数值(大小)

2)G:绿色像素的数值(大小)

3)B:蓝色像素的数值(大小)

4)A:Alpha通道的数值,代表图像的不透明度(大小)

语法:context.getImageData(x,y,width,height);

例子:

red = imgData.data[0]; //获取红色像素大小

green = imgData.data[1];

blue = imgData.data[2];

alpha = imgData.data[3];

3)矩阵转成图像数据

经过处理(灰度变换等)后的矩阵,需要一个方法变成ImageData,然后我们才可以通过putImageData方法在canvas上绘制经过处理的图像。代码如下:

function RGBA2ImageData(__imgMat){

var width = __imgMat.col,

height = __imgMat.row,

imageData = iCtx.createImageData(width, height);

imageData.data.set(__imgMat.data);

return imageData;

}

5.实验结果

截图如下:

代码如下:

说明:core.js封装了实验步骤中所述的矩阵处理代码

6.实验心得

与VC++不同的是Web端Canvas读取的图像数据多一个Alpha分量表示图像的不透明度。使用Canvas读取图像数据无需关注图像的压缩格式。

数字图像处理实验1

实验一 实验内容和步骤 练习图像的读取、显示和保存图像数据,步骤如下: (1)使用命令figure(1)开辟一个显示窗口 (2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示、二值图像和灰度图像,注上文字标题。 (3)保存转换后的灰度图像和二值图像 (4)在同一个窗口显示转换后的灰度图像的直方图 I=imread('BaboonRGB.bmp'); figure,imshow(I); I_gray=rgb2gray(I); figure,imshow(I_gray); I_2bw=Im2bw(I_gray); figure,imshow(I_2bw); subplot(1,3,1),imshow(I),title('RGB图像'); subplot(1,3,2),imshow(I_gray),title('灰度图像'); subplot(1,3,3),imshow(I_2bw),title('二值图像'); imwrite(I_gray,'Baboongray.png'); imwrite(I_2bw,'Baboon2bw.tif'); figure;imhist(I_gray);

RGB 图 像灰度图 像二值图 像 050100150200250 500 1000 1500 2000 2500 3000

(5)将原RGB 图像的R 、G 、B 三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R 、G 、B 分量的不同之处。 [A_RGB,MAP]=imread('BaboonRGB.bmp'); subplot(2,2,1),imshow(A_RGB),title('RGB'); subplot(2,2,2),imshow(A_RGB(:,:,1)),title('R'); subplot(2,2,3),imshow(A_RGB(:,:,2)),title('G'); subplot(2,2,4),imshow(A_RGB(:,:,3)),title('B'); (6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;A=imread('BaboonRGB.bmp'); figure(3),imshow(A),title('原图像'); B=imresize(A,1.5,'nearest'); figure(4),imshow(B),title('最邻近法') C=imresize(A,1.5,'bilinear'); ; figure(5),imshow(C),title('双线性插值'); D=imresize(A,1.5,'bicubic'); figure(6),imshow(D),title('双三次插值 '); RGB R G B

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

数字图像处理实验报告完整版

数字图像处理 实验一 MATLAB数字图像处理初步 一、显示图像 1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 实验结果如下图: 源代码: >>I=imread('lily.tif') >> whos I >> imshow(I) 二、压缩图像 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。7.用imread()读入图像Sunset.jpg和Winter.jpg; 8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小; 9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。 其中9的实验结果如下图:

源代码: 4~6(接上面两个) >>I=imread('lily.tif') >> imfinfo 'lily.tif'; >> imwrite(I,'lily.jpg','quality',20); >> imwrite(I,'lily.bmp'); 7~9 >>I=imread('Sunset.jpg'); >>J=imread('Winter.jpg') >>imfinfo 'Sunset.jpg' >> imfinfo 'Winter.jpg' >>figure(1),imshow('Sunset.jpg') >>figure(2),imshow('Winter.jpg') 三、二值化图像 10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。实验结果如下图: 源代码: >> I=imread('lily.tif') >>gg=im2bw(I,0.4); F>>igure, imshow(gg)

东南大学数字图像处理实验报告

数字图像处理 实验报告 学号:04211734 姓名:付永钦 日期:2014/6/7 1.图像直方图统计 ①原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。 通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 ②算法: clear all PS=imread('girl-grey1.jpg'); %读入JPG彩色图像文件figure(1);subplot(1,2,1);imshow(PS);title('原图像灰度图'); [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率end figure(1);subplot(1,2,2);bar(0:255,GP,'g') %绘制直方图 axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率') ③处理结果:

原图像灰度图 100 200 0.005 0.010.0150.020.025 0.030.035 0.04原图像直方图 灰度值 出现概率 ④结果分析:由图可以看出,原图像的灰度直方图比较集中。 2. 图像的线性变换 ①原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主 要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 ②算法: clear all %一,图像的预处理,读入彩色图像将其灰度化 PS=imread('girl-grey1.jpg'); figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图'); %二,绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255

数字图像处理实验 实验二

实验二MATLAB图像运算一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验步骤 1.图像的加法运算-imadd 对于两个图像f x,y和 (x,y)的均值有: g x,y=1 f x,y+ 1 (x,y) 推广这个公式为: g x,y=αf x,y+β (x,y) 其中,α+β=1。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。 代码: I1 = imread('rice.png'); I2 = imread('cameraman.tif'); I3 = imadd(I1, I2,'uint8'); I4 = imadd(I1, I2,'uint16'); subplot(2, 2, 1), imshow(I1), title('?-ê?í???1'); subplot(2, 2, 2), imshow(I2), title('?-ê?í???2'); subplot(2, 2, 3), imshow(I3), title('8??í?????ê?'); subplot(2, 2, 4), imshow(I4), title('16??í?????ê?'); 结果截图:

2.图像的减法运算-imsubtract 说明: 背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。 示例代码如下: I1 = imread('rice.png'); background = imerode(I1, strel('disk', 15)); rice2 = imsubtract(I1, background); subplot(2, 2, 1), imshow(I1), title('?-ê?í???'); subplot(2, 2, 2), imshow(background), title('±3?°í???'); subplot(2, 2, 3), imshow(rice2), title('′|àíoóμ?í???'); 结果截图: 3.图像的乘法运算-immultiply

数字图像处理第一章

数字图像处理
苗启广 西安电子科技大学 计算机学院 QGMiao@https://www.doczj.com/doc/68642570.html, 2011.9.2

本课程主要内容包括:
第1章. 第2章. 第3章. 第4章. 第5章. 第6章. 第7章. 第8章. 第9章. 概述 彩色数字图像基础 图像变换 图像增强 图像复原 图像重建 图像数据压缩 图像分割与特征提取 图像的形态学运算

第一章 概述 本章主要内容:
1.什么是数字图像 2.数字图像处理的主要研究内容 3.数字图像处理系统的基本组成结构 4.数字图像处理的应用 5.数字图像处理中的数据结构 6.图像获取、显示与存储

1.什么是数字图像?
一幅数字图像可以看成由许许多多的点组 成的

1.什么是数字图像?
数字图像是指由被称作象素的小块区域 组成的二维矩阵。对于单色即灰度图像而 言,每个象素的亮度用一个数值来表示,通 常数值范围在0-255,即可用一个字节来表 示,0表示黑、255表示白,而其它表示灰 度。
125,153,158,157,127, 70,103,120,129,144,144,150,150,147, 133,154,158,100,116,120, 97, 74, 54, 74,118,146,148,150, 155,163, 95,112,123,101,137,108, 81, 71, 63, 81,137,142, 167, 69, 85, 59, 65, 43, 85, 34, 69, 78,104,101,117,132, 54, 46, 38, 44, 38, 36, 44, 36, 25, 48,115,113,114,124, 58, 30, 44, 35, 28, 69,144,147, 57, 60, 93,106,119,124,

数字图像处理——彩色图像实验报告

6.3实验步骤 (1)对彩色图像的表达和显示 * * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * * rgbcube(0,0,10); %从正面观察彩色立方体 rgbcube(10,0,10); %从侧面观察彩色立方 rgbcube(10,10,10); %从对角线观察彩色立方体 %* * * * * * * * * *索引图像的显示和转换* * * * * * * * * * f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %rgb图像转换成8色索引图像,不采用抖动方式 [X1,map1]=rgb2ind(f,8,'nodither'); figure,imshow(X1,map1); %采用抖动方式转换到8色索引图像 [X2,map2]=rgb2ind(f,8,'dither'); figure,imshow(X2,map2); %显示效果要好一些 g=rgb2gray(f); %f转换为灰度图像 g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像 figure,imshow(g1);%显示抖动处理后的二值图像 程序运行结果:

彩色立方体原图 不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像 灰度图像抖动处理后的二值图像

(2)彩色空间转换 f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %转换到NTSC彩色空间 ntsc_image=rgb2ntsc(f); figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息 %转换到HIS彩色空间 hsi_image=rgb2hsi(f); figure,imshow(hsi_image(:,:,1));%显示色度信息figure,imshow(hsi_image(:,:,2)); %显示饱和度信息figure,imshow(hsi_image(:,:,3));%显示亮度信息 程序运行结果: 原图 转换到NTSC彩色空间

数字图像处理实验报告

数字图像处理试验报告 实验二:数字图像的空间滤波和频域滤波 姓名:XX学号:2XXXXXXX 实验日期:2017 年4 月26 日 1.实验目的 1. 掌握图像滤波的基本定义及目的。 2. 理解空间域滤波的基本原理及方法。 3. 掌握进行图像的空域滤波的方法。 4. 掌握傅立叶变换及逆变换的基本原理方法。 5. 理解频域滤波的基本原理及方法。 6. 掌握进行图像的频域滤波的方法。 2.实验内容与要求 1. 平滑空间滤波: 1) 读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一 图像窗口中。 2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要 求在同一窗口中显示。 3) 使用函数 imfilter 时,分别采用不同的填充方法(或边界选项,如零填 充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图 像。 4) 运用 for 循环,将加有椒盐噪声的图像进行 10 次,20 次均值滤波,查看其特点, 显 示均值处理后的图像(提示:利用fspecial 函数的’average’类型生成均值滤波器)。 5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要 求在同一窗口中显示结果。 6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。 2. 锐化空间滤波 1) 读出一幅图像,采用3×3 的拉普拉斯算子 w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1] 对其进行滤波。 2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5 ×5的拉普拉斯算子 w = [ 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 1] 3) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对

数字图像处理复习整理

《数字图像处理》复习 第一章绪论 数字图像处理技术的基本容:图像变换、图像增强、图象恢复、图像压缩编码、图像分割、图像特征提取(图像获取、表示与描述)、彩色图像处理和多光谱及高光谱图像处理、形态学图像处理 第二章数字图像处理基础 2-1 电磁波谱与可见光 1.电磁波射波的成像方法及其应用领域: 无线电波(1m-10km)可以产生磁共振成像,在医学诊断中可以产生病人身体的横截面图像 ☆微波(1mm-1m)用于雷达成像,在军事和电子侦察领域十分重要 红外线(700nm-1mm)具有全天候的特点,不受天气和白天晚上的影响,在遥感、军事情报侦察和精确制导中广泛应用 可见光(400nm-700nm)最便于人理解和应用最广泛的成像方式,卫星遥感、航空摄影、天气观测和预报等国民经济领域 ☆紫外线(10nm-400nm)具有显微镜方法成像等多种成像方式,在印刷技术、工业检测、激光、生物学图像及天文观测 X射线(1nm-10nm)应用于获取病人胸部图像和血管造影照片等医学诊断、电路板缺陷检测等工业应用和天文学星系成像等 伽马射线(0.001nm-1nm)主要应用于天文观测 2-2 人眼的亮度视觉特征 2.亮度分辨力——韦伯比△I/I(I—光强△I—光照增量),韦伯比小意味着亮度值发生较小变化就能被人眼分辨出来,也就是说较小的韦伯比代表了较好的亮度分辨力 2-3 图像的表示 3. 黑白图像:是指图像的每个像素只能是黑或白,没有中间的过渡,一般又称为二值图像 (黑白图像一定是二值图像,二值图像不一定是黑白图像) 灰度图像:是指图像中每个像素的信息是一个量化了的灰度级的值,没有彩色信息。 彩色图像:彩色图像一般是指每个像素的信息由R、G、B三原色构成的图像,其中的R、B、G是由不同的灰度级来描述的。 4.灰度级L、位深度k L=2^k 5.储存一幅M×N的数字图像所需的比特b=M×N×k 例如,对于一幅600×800的256灰度级图像,就需要480KB的储存空间(1KB=1024Byte 1Byte=8bit) 2-4 空间分辨率和灰度级分辨率 6.空间分辨率是图像中可分辨的最小细节,主要由采样间隔值决定,反映了数字化后图像的实际分辨率。一种常用的空间分辨率的定义是单位距离可分辨的最少黑白线对数目(单位是每毫米线对数),比如每毫米80线对。对于一个同样大小的景物来说,对其进行采样的空间分辨率越高,采样间隔就越小,图片的质量就越高。 7.灰度级分辨率是指在灰度级别中可分辨的最小变化,通常把灰度级级数L称为图像的灰度级分辨率(灰度级通常是2的整数次幂) 8.在图像空间分辨率不变的情况下,采样数越少,图像越小。同时也证实了,在景物大小不变的情况下,图像阵列M×N越小,图像的尺寸就越小;

数字图像处理实验

《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 2015年6月18日

目录 实验一图像的读取、存储和显示 (2) 实验二图像直方图分析 (6) 实验三图像的滤波及增强 (15) 实验四噪声图像的复原 (19) 实验五图像的分割与边缘提取 (23) 附录1MATLAB简介 (27)

实验一图像的读取、存储和显示 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像的显示。 二、实验原理 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 三、实验设备 (1) PC计算机 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容及步骤 1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件设为flower.jpg语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。 7.用imread()读入图像:Lenna.jpg 和camema.jpg; 8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;

北航数字图象处理实验报告

数字图像处理实验报告 实验二图像变换实验 1.实验目的 学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性认识,并用图像变换进行压缩。 2.实验内容 对Lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。在频域,对比他们的变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。 3. 实验要求 实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。具体要求如下: (1)输入图像采用实验1所获取的图像(Lena、Cameraman); (2)对图像进行傅立叶变换、获得变换后的系数矩阵; (3)将傅立叶变换后系数矩阵的频谱用图像输出,观察频谱; (4)通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换,获得逆变换后图像; (5)观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(PSNR)。 (6)对输入图像进行离散余弦、哈达玛变换,重复步骤1-5; (7)比较三种变换的频谱情况、以及逆变换后图像的质量(PSNR)。 4. 实验结果 1. DFT的源程序及结果 J=imread('10021033.bmp'); P=fft2(J); for i=0:size(P,1)-1 for j=1:size(P,2) G(i*size(P,2)+j)=P(i+1,j); end end Q=sort(G); for i=1:size(Q,2) if (i=size(Q,2)*0.95) t=Q(i); end end G(abs(G)

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班

实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)

title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

数字图像处理实验一

数字图像处理—实验一 一.实验内容: 图像灰度变换 二.实验目的: 学会用Matlab软件对图像灰度进行变换;感受各种不同的灰度变换方法对最终图像效果的影响。 三.实验步骤: 1.获取实验用图像:rice.jpg. 使用imread函数将图像读入Matlab。 程序: clc;clear; figure; subplot(4,4,1); i = imread('rice.png'); i = im2double(i); imshow(i);title('1'); 2.产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤r ≤0.65

1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg进行处理,使用imwrite函数保存处理后的新图像。程序: subplot(4,4,2); r=[0:0.001:1]; s=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1 +0.3*(r-1)); plot(r,s);title('2p'); subplot(4,4,3); T1=[i<0.35].*i*0.3+[i<=0.65].*[i>=0.35].*(0.105+2.6333*(i-0.35))+[i>0.65].*( 1+0.3*(i-1)); imshow(T1);title('2i'); imwrite(T1,'rice_T1.jpg','jpg');

3.产生灰度变换函数T2,使得: 用T2对原图像rice.jpg进行处理,使用imwrite保存处理后的新图像。 %3 subplot(4,4,4); r = [0:0.001:1];

武汉科技大学 数字图像处理实验报告讲解

二○一四~二○一五学年第一学期电子信息工程系 实验报告书 班级:电子信息工程(DB)1102班姓名 学号: 课程名称:数字图像处理 二○一四年十一月一日

实验一图像直方图处理及灰度变换(2学时) 实验目的: 1. 掌握读、写、显示图像的基本方法。 2. 掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。 3. 掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。 实验内容: 1. 读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。 2. 完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。 3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。 实验步骤: 1. 将图片转换为灰度图片,进行直方图均衡,并统计图像的直方图: I1=imread('pic.jpg'); %读取图像 I2=rgb2gray(I1); %将彩色图变成灰度图 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('灰度图'); subplot(3,2,4); imhist(I2); %统计直方图 title('统计直方图'); subplot(3,2,5); J=histeq(I2); %直方图均衡 imshow(J); title('直方图均衡'); subplot(3,2,6); imhist(J); title('统计直方图');

原 图 灰度图 01000 2000 3000统计直方图 100200直方图均衡 0统计直方图 100200 仿真分析: 将灰度图直方图均衡后,从图形上反映出细节更加丰富,图像动态范围增大,深色的地方颜色更深,浅色的地方颜色更前,对比更鲜明。从直方图上反应,暗部到亮部像素分布更加均匀。 2. 将图片进行阈值变换和灰度调整,并统计图像的直方图: I1=imread('rice.png'); I2=im2bw(I1,0.5); %选取阈值为0.5 I3=imadjust(I1,[0.3 0.9],[]); %设置灰度为0.3-0.9 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('阈值变换'); subplot(3,2,5); imshow(I3); title('灰度调整'); subplot(3,2,2); imhist(I1); title('统计直方图'); subplot(3,2,4);

数字图像处理课后参考答案

数字图像处理 第一章 1.1解释术语 (2)数字图像:为了便于用计算机对图像进行处理,通过将二维连续(模拟)图像在空间上离散化,也即采样,并同时将二维连续图像的幅值等间隔的划分成多个等级(层次)也即均匀量化,以此来用二维数字阵列并表示其中各个像素的空间位置和每个像素的灰度级数的图像形式称为数字图像。 (3)图像处理:是指对图像信息进行加工以满足人的视觉或应用需求的行为。 1.7 包括图像变化、图像增强、图像恢复、图像压缩编码、图像的特征提取、形态学图像处理方法等。彩色图像、多光谱图像和高光谱图像的处理技术沿用了前述的基本图像处理技术,也发展除了一些特有的图像处理技术和方法。 1.8基本思路是,或简单地突出图像中感兴趣的特征,或想方法显现图像中那些模糊了的细节,以使图像更清晰地被显示或更适合于人或及其的处理与分析。 1.9基本思路是,从图像退化的数学或概率模型出发,研究改进图像的外观,从而使恢复以后的图像尽可能地反映原始图像的本来面目,从而获得与景物真实面貌相像的图像。 1.10基本思路是,,在不损失图像质量或少损失图像质量的前提下,尽可能的减少图像的存储量,以满足图像存储和实时传输的应用需求。1.11基本思路是,通过数学方法和图像变换算法对图像的某种变换,以便简化图像进一步处理过程,或在进一步的图像处理中获得更好的处理效果。 1.12基本目的是,找出便于区分和描述一幅图像中背景和目标的方法,以方便图像中感兴趣的目标的提取和描述。 第二章 2.1解释下列术语 (18)空间分辨率:定义为单位距离内可分辨的最少黑白线对的数目,用于表示图像中可分辨的最小细节,主要取决于采样间隔值的大小。(19)灰度分辨率:是指在灰度级别中可分辨的最小变化,通常把灰度级数L称为图像的灰度级分辨率。 (20)像素的4邻域:对于图像中位于(x,y)的像素p来说,与其水平相邻和垂直相邻的4个像素称为该像素的4邻域像素,他们的坐标分别为(x-1,y)(x,y-1)(x,y+1)(x+1,y)。

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)

实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图所示:

数字图像处理实验报告

- 院系:计算机科学学院专业:计算机科学与技术年级: 2012级 课程名称:数字图像处理组号: 姓名(学号): 指导教师:高志荣 2015年 5月 25日

实验原理(算法流程)2.运行结果 1-1-1图查看2012213500.png图片的基本信息和显示图片过程 1-1-2图将2012213500.png图片保存为2012213500.bmp图片3.实验分析

实验原理(算法流程) 先用imread()函数将2012213500.png存入I数组中,可见1-1-1图右上角的Workspace中的I。然后用imfinfo()函数和ans函数读取该图像的大小、类型等信息,具体在1-1-1图的Command Window中可见。至于图片格式的转换,就是用rgb2gray()函数将保存在I数组中的数据转换成灰度格式保存在原来的数组I中。最后将变换所得到的数据保存于2012213500.bmp文件中。 实验(2): 1.代码实现 I=imread(2012213500.bmp');%读取灰度图片 subplot(221),imshow(I,[]),title('256*256,256') I=I(1:2:end,1:2:end);%图片采样 subplot(222),imshow(I,[]),title('128*128,256') I=I(1:2:end,1:2:end);%图片采样 subplot(223),imshow(I,[]),title('64*64,256') I=I(1:2:end,1:2:end);%图片采样 subplot(224),imshow(I,[]),title('32*32,256') 2.运行结果 1-2 图图片空间分辨率对图片的影响 3.实验分析 由1-2图可以看出,在保持灰度级数一定的条件下,随着图片空间分辨率的减半,即256*256,128*128,64*64,32*32的图像,图中的各个区域边缘处的棋盘模式越来越明显,并且全图的像素颗粒越来越粗。证明了空间分辨率是影响图片清晰度的因素之一。 实验(3): 1.代码实现 I=imread('2012213500.bmp');%读取灰度图片 subplot(221),imshow(I,256),title('256*256,256')%灰度级为256 subplot(222),imshow(I,50),title('256*256,50') %灰度级为50 subplot(223),imshow(I,10),title('256*256,10') %灰度级为10 subplot(224),imshow(I,5),title('256*256,5') %灰度级为5

数字图像处理实验一

实验一图像变换 一.实验目的 1.了解图像变换的意义和手段 2.熟悉离散傅里叶变换、离散余弦变换、离散小波变换的基本性质; 3.熟练掌握图像变换的方法及应用; 4.通过实验了解二维频谱的分布特点; 5.通过本实验掌握利用MATLAB编程实现数字图像的变换。 二.实验原理 1.应用各种离散变换进行图像处理 2.离散余弦变换(DCT)的定义 3. 离散小波变换定义 三.实验步骤 1.启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件; 2.利用MatLab工具箱中的函数编制FFT频谱显示的函数; 3 .调入、显示“实验一”获得的图像; 4.对图像做FFT并利用自编的函数显示其频谱; 5.讨论不同的图像内容与FFT频谱之间的对应关系。 6.记录和整理实验报告。 四.实验程序与内容 clc; figure(1); load imdemos saturn2; title('原图像'); imshow(saturn2); figure(2); s=fftshift(fft2(saturn2)); imshow(log(abs(s)),[]); title('原图像傅立叶频谱'); figure(1); A=imread('liubh.jpg');

B=rgb2gray(A); imshow(B); title('原图像'); s=fftshift(fft2(B)); figure(2); imshow(log(abs(s)),[]); title('彩色图像的傅立叶频谱'); RGB=imread('liubh.jpg'); figure(1);

相关主题
文本预览
相关文档 最新文档