我想把图片里的数据导入matlab导入数据画图对数字进行运算,求怎么导入并处理

38被浏览3,992分享邀请回答1添加评论分享收藏感谢收起0添加评论分享收藏感谢收起写回答当前位置: >>
matlab《数字图像处理》第5章 算术运算(计科)
第5章 图像的算术运 算 学习重点数字图像的算术运算2 学习内容5.1 5.2 5.3 5.4 图像的点运算 图像的算术运算 图像的位逻辑运算 图像的简单应用例子3 5.1、图像的点运算??点运算将输入图像映射为输出图像,输出图像 每个像素点的灰度值仅由对应的输入像素点的 值决定。 点运算常用于改变图像的灰度范围及分布,是 图像数字化及图像显示的重要工具。 点运算因其作用性质有时也称为对比度增强、 对比度拉伸或灰度变换。 直方图均衡化和直方图规范化都是点运算的典 型应用。4?? 5.1.1 线性点运算在线性点运算中,灰度变换函数在数学上 就是线性函数:f(r)=ar+b? a&1时,输出图像对比度增大;? a&1时,输出图像对比度降低;? a=1,b~=0时,仅使输出图像的灰度值上 移或下移,其效果是使整个图像更亮或更暗。线性点运算的典型应用是灰度分布标准化。5 5.1.2 非线性点运算非线性点运算对应与非线性映射函数,典 型的映射函数包括平方函数、对数函数、 截取(窗函数)、阈值函数等6 7 5.2、图像的算术运算?算术运算是指两幅或多幅输入图像之间进 行点对点的加、减、乘、除运算得到输出 图像的过程。?算术运算可以简单理解成数组的运算。8 ???算术运算是指两幅或多幅输入图像之间。 算术运算的结果很容易超出数据类型允许 的范围。如uint8能够存储最大数是255, 乘法运算很容易超过这个数值;还有除法 运算会产生分数结果。所以超过范围的都 按数据范围的极值截取,分数结果将被四 舍五入。 无论哪一种代数运算都要保证两幅输入图 像的大小相等,且类型相同9 5.2.1 加法运算??图像相加一般用于对同一场景的多幅图像求 平均效果(此处的平均是指效果而言,并非 算术平均),以便有效地降低具有加性的随 机噪声。 直接采集的图像品质一般都较好,不需要进 行加法运算处理,但是对于那些经过长距离 模拟通讯方式传送的图片(如卫星图像), 这种处理是必不可少的。10 ?在 Matlab图像处理工具箱中,imadd函数 实现图像相加运算。可以是一副图像与另 一幅图像相加;也可以是一副图像加上一 个常数。 Z=imadd(X, Y)?11 注意类型处理X=uint8([255 0 75; 44 225 100]); Y=uint8([50 50 50; 50 50 50]); Z=imadd(X,Y)结果: Z= 255 50 125 94 255 150饱和处理12 I=imread('rice.png'); J=imread('cameraman.tif'); K=imadd(I,J,'uint16'); imshow(K,[])13 一般选8幅取平均14 15 ?和imadd一样,matlab还提供了一个噪 声添加函数imnoise,以方便模拟噪声 信息。这个函数也相当于图像相加运算。?调用格式: J=imnoise(I,type) J=imnoise(I,type,parameters)Doc imnoise16 I=imread('eight.tif'); J=imnoise(I,'salt & pepper',0.02); imshow(I) figure,imshow(J)17 I=imread('eight.tif'); [m,n]=size(I); J=imnoise(I,'gaussian',0,0.02); figure,imshow(I) figure,imshow(J) k=zeros(m,n); for i1=1:100 J1=imnoise(I,'gaussian',0,0.02); J2=im2double(J1); k=k+J2; end k=k/100;imshow(k);18 19 生成图象叠加效果:可以得到各种图像合成的效果, 也可以用于两张图片的衔接。20 RGB=imread(‘peppers.png’); RGB2=imadd(RGB,150); Subplot(121);imshow(RGB); Subplot(122);imshow(RGB2);给图像的每个像素加上一个常数,可以使 亮度增加21 5.2.2 减法运算将同一景物在不同时间拍摄的图像或同一景物在不 同波段的图像相减,这就是图像的减法运算。实际中 常称为差影法。C ( x, y) ? A( x, y) ? B( x, y)差值图像提供了图像间的差值信息,能用于指导 动态监测、运动目标的检测和跟踪、图像背景的消除 及目标识别等。主要应用举例:差影法(检测同一场景两幅图像之间的变化)混合图像的分离 ;梯度幅度的应用22 ?在Matlab图像处理工具箱中,imsubtract 函数和imabsdiff函数实现图像减法运算。Z= imsubtract (X, Y):小于0的置零 Z= imabsdiff (X, Y):相减后取绝对值23 1) 检测同一场景两幅图像之间的变化 设:时刻1的图像为 时刻2的图像为 T1(x,y), T2(x,y)g(x,y) = T2 (x,y) - T1(x,y)=-g(x,y)T2(x,y)T1(x,y)24 25 差影法在自动现场监测中的应用 1、在银行金库内,摄像头每隔一固定时间拍摄 一幅图像,并与上一幅图像做差影,如果图像 差别超过了预先设置的阈值,则表明可能有异 常情况发生,应自动或以某种方式报警;2、用于遥感图像的动态监测,差值图像可以发现森 林火灾、洪水泛滥,监测灾情变化等;26 差影法在自动现场监测中的应用 3、也可用于监测河口、海岸的泥沙淤积及监视江河、 湖泊、海岸等的污染;4、利用差值图像还能鉴别出耕地及不同的作物 覆盖情况。27 2) 混合图像的分离(a)混合图像(b)被减图像(c)差影图像差影法进行混合图像的分离28 3) 消除背景影响即去除不需要的叠加性图案设:背景图像b(x ,y),前景背景混合图像f(x ,y) g(x,y)=f(x,y)Cb(x,y) g(x,y) 为去除了背景图像差值 图像背景 图像(a)从病人头顶向下拍摄的X光照片(b)碘元素注入后拍摄的 X光照片与背景图像的差值29 30 4)求梯度幅度? ?图像的减法运算也可应用于求图像梯度函数 梯度定义形式:?梯度幅度?f ?f ?f ( x, y ) ? i ? j ?x ?y?f 2 ?f 2 | ?f ( x, y ) |? ( ) ? ( ) ?x ?y31 梯度幅度的近似计算:| ?f ( x, y) |? max[| f ( x, y) ? f ( x ? 1, y) |, | f ( x, y) ? f ( x, y ? 1) |]32 梯度幅度在边缘处很高; 在均匀的肌肉纤维的内部,梯度幅度很低。梯度幅度图像33 5.2.3 乘法运算???两幅图像进行乘法运算可以实现掩膜操作,即屏 蔽掉图像的某些部分。 一幅图像乘一个常数通常被称为缩放,这是一种 常见的图像处理操作。如果使用的缩放因素大于 1,那么将增强图像的亮度,反之则图像变暗。 缩放通常产生比简单添加像素偏移量自然得多的 明暗效果,这是因为这种操作能够更好地维持图 像的相关对比度。 由于时域的卷积或相关运算与频域的乘积运算对 应,因此乘法运算有时也被作为一种技巧来实现 卷积或相关处理。34 ?在Matlab图像处理工具箱中,immultiply 函数实现图像乘法运算。 Z= immultiply (X, Y) 类似矩阵点乘运算(.*)??35 I=imread('moon.tif'); I16=uint16(I); J=immultiply(I16,I16); imshow(I); figure,imshow(J)36 37 38 I=imread('moon.tif'); J=I*1.2;% J=immultiply(I,2);imshow(I);figure,imshow(J)39 改变图像的灰度级(a) 原图(b) 乘以1.2(c) 乘以240 I=imread('moon.tif');J=imnoise(I,'gaussian',0,0.02);k=imsubtract(I,J);k1=255-k;figure(),imshow(I)41 5.2.4 除法运算?除法运算可以用于校正成像设备的非线性影 响; 在特殊形态的图像(如 CT 等医学图像)处理 中常常用到。??图像像素点的除法运算可以检测图像间的差 别,但是除法运算结果主要是像素值的比率 变化,而不是每个像素的绝对差异,因此也 成为比率变换。42 ?在Matlab图像处理工具箱中,imdivide函 数实现图像除法运算。 Z= imdivide (X, Y) 类似矩阵点除运算??43 I=imread('rice.png'); J=imdivide(I,2); imshow(I) figure(2),imshow(J)44 5.2.5 四则运算?在Matlab图像处理工具箱中,imlincomb 函数实现图像四则运算。 Z= imlincomb (A,X,B, Y,C),其中 Z=A*X+B*Y+C? ??按照双精度执行所有代数运算操作,而且 仅对最后的输出结果进行截取45 例:计算两幅图像的均值 I=imread('rice.png'); J=imread('cameraman.tif'); k=imdivide(imadd(I,J), 2); imshow(k)46 I=imread('rice.png'); J=imread('cameraman.tif'); L=imlincomb(.5,I,.5,J); imshow(L)47 5.2.6 图像求补运算?在 Matlab 图 像 处 理 工 具 箱 中 , imcomplement函数实现图像求补运算。 Z= imcomplement ( I),其中?48 bw=imread('text.png'); bw2=imcomplement(bw); imshow(bw); figure,imshow(bw2)49 50 5.3 图像的位逻辑运算?图像的位逻辑运算在图像增强、图像识别、 图像复原和区域分割等领域有着广泛的应 用。它和图像算术运算的差别在于,位逻辑运 算不仅关注图像像素点的数值的变换,而 且更着于位变换的情况。?51 5.3.1 非运算52 获得一个阴图像53 获得一个子图像的补图像54 函数bitand bitcmp说明位与 位补bitorbitxor bitshift位或位异或 位移位55 5.3.2 与运算56 57 5.3.3 或运算58 59 5.3.4 异或运算60 I=imread('rice.png'); J=imdivide(I,2); K1=bitand(I,J); imshow(K1) title('图像的位与运算') K2=bitcmp(I,8); figure(2) imshow(K2); title('图像的位补运算') K3=bitor(I,J); figure(3) imshow(K3); title('图像的位或运算')61 K4=bitxor(I,J); figure(4) imshow(K4); title('图像的位异或运算') K5=bitshift(I,2); figure(5) imshow(K5); title('图像的位移位运算')62 5.4 图像的简单应用例子5.4.1 一个简单的图像叠加隐写 5.4.2 图像三维重建63 5.4.1 一个简单的图像叠加隐写图像隐藏是指媒体信息的相互隐藏,常见的有数字水 印和图像的信息伪装等。 在一幅图像中隐藏一个信息,并可以通过一种方式将 图像信息解码出来。A(原始图像) C(加入信息的图像)B(需要隐 藏的信息)要求: A与C尽量相近,没有差别64 介绍的目的:体会matlab中关于imread和imshow 的用法。 算法思想 采用一种原始的图像叠加的简单思想处理 1 隐写算法 1)将原始图像A和隐写信息B读入matlab 2)将隐写信息B扩充到与A有相同大小的点阵3)将矩阵A和B中的数据转换成uint8型65 4)对矩阵B的数据做如下处理:B(i,j,k)/100; i,j分别是点阵的大小,k=1,2,3;5)将矩阵A和B做叠加处理得到带有隐写信息的图像C2 解码算法是隐写算法的逆过程66 zA2b叠加算法的具体图形表达g1zx10oy11536xrC21b?b 1 g ? g1x12048yz21b1y1B0o20481536r?r 1x0oy1g1y1536x1r 1x672048y 算法可成立的支持理由 对于隐写信息B由于将象素点的RGB值减小100倍, 再叠加到原始图像A中,这样基本看不出隐写信息;在解码中将处理后带有隐写信息的图像C减去A并将象素点扩大100倍可以得到隐写信息B。68 算法的实现结果 1) 隐写结果+69 2)解码结果70 算法中图像叠加和图像相减语句可以采用编程实现,也 可采用函数imadd和imsubtract。这种简单算法的问题: 1)由于采用uint8型(0-255)所以当数据叠加超过 255时只以255计算,这样可能在恢复隐写信息时造成 信息失真,特别对黑白色图像(255)相加。71 2)由于在前面隐写时像素值缩小了100倍在uint8型 下省去了小数点后的数,故而得到恢复图像的像素值 都为0,100,200。所以有很大的局限性。可以想到的解决方向: 1)采用double型来保持小数点后面的值。 2)传输处理后图像的同时传输一个记录数据的矩阵。 3)隐写算法(已经成为一个独立的研究方向)72 一个较为正规的数字水印程序73 公开图像 rgb2gray灰度图像 二维余弦变换(DCT2) 在低频部分加载水印信息 二值图像 含有水印图像水印图像im2bw利用二维余弦反变换(IDCT2) 得到水印信息图像74 图像保存中的失真问题A=imread(‘山水照片.jpg’); imshow(A); 得到:保存为JPG等格式, 再显示的结果解决方案:程序中直接采用 imwrite写入磁盘,这样大 小就不会改变。一般bmp格 式较不易失真。75 最常碰到的问题有:1) 图像读入 imread ,显示图像用imshow (h) 语句,h 为图像句柄;输出图像若需要永久保存,可用 imwrite(h,map, ’filename.bmp’,’bmp’), 写入存储 器。注意在该语句前要设置调色板,即map=(gray(256))。 2) 要注意图像格式的转化。不同的图像格式对应不同的 处理方式,如果处理与格式不符,将引起错误。 3) 尽管MATLAB允许未定义使用数组,但在实际应用中这 样经常出错,特别是遇到在double和uint8型之间的转换 时。所以最好还是养成用前定义的习惯,避免出现不必要 的错误。76 4)在做完一定量的运算后,一般要用Clear清除内存变量, 以防影响后面的程序运行。5) 一般默认路径在matlab安装文件下的work文件夹中, 程序和资源都放在此,如果需要引用新的文件,应事先指 明路径。6) 应注意语句结尾“;” 的使用,特别是图像处理中。7) 应做好程序的注释工作。77 5.4.2 应用matlab解决三维血管重 建中的图像处理问题1. 问题的来源及说明(涉及的是图像处理方面) 2. 多幅图像的批量读入解决方案 3. 重建方法一:最原始的,采用图像数据扫描算法 4. 重建方法二:简单介绍寻找各图像中包络球算法, 模拟半径和位置进行拟合的算法。 5. 说明(这个问题的处理思想各异,本次课程介绍了 一种方法,大家可以自己开拓思路想出更好的方法。)78 问题的来源及说明?题目来源:2001年全国大学生数学建模竞赛A题。 ? (题目及附件) 题目说明:本次课程主要侧重于应用matlab对图像 文件的建模和处理,所以在本题中涉及到的三维数 学图形里如球的包络,以及拟合中轴线等,介绍略。?79 A题 血管的三维重建根据拍照得到的平行切片数字图象,运用计算 机重建三维形态。 血管可视为一类特殊的管道,该管道的表面是 由球心沿着某一曲线(称为中轴线)的球滚动 包络而成。例如圆柱就是这样一种管道,其中 轴线为直线,由半径固定的球滚动包络形成。80 现有某管道100张平行切片图象,格式均为BMP, 512*512像素。假设:管道中轴线与每张切片有且只 有一个交点;球半径固定;切片间距以及图象像素的 尺寸均为1。 计算管道的中轴线与半径,给出具体的算法,并绘 制中轴线在XY、YZ、ZX平面的投影图。81 多幅图像的批量读入解决方案一幅图片的读取使用matlab,在本题中有100幅图, 如何将这100幅图自动读入各对应的矩阵中,以便进 一步处理,方案如下: (1)将100幅图放入work文件夹等相应的操作文件 夹中。 (2)使用for循环结合字符串和数值之间的转换函数, 循环各图片文件名。代码如下: for b=0:99m(:,:,b+1)=imread([int2str(b),'.bmp']); end82 由于图片文件是一个二值图像,每一幅图片文件读入到 matlab中是一个二维矩阵,且数值为0或者1,代表黑 和白。所以上面的代码,最终把每一张图片的数据都记 录到一个三维矩阵m中,其中m每一层记录一张图片的 512 数据,一共100层。512第100幅图(99.bmp) 矩阵m第100层m(:,:,100)矩阵m第50层m(:,:,50)512矩阵m第1层m(:,:,1)第50幅图(49.bmp)512矩阵m第1幅图(0.bmp)注意:文件读入时间较长,为了以后操作方便,可以 将生成的矩阵m保存为.mat文件,以便以后再次调用。 83 重建方法一:最原始的,采用图像数 据扫描算法有了图片的数据矩阵m后,可以重建图像,由 于m的每一层都记录了一副图片,最容易想到 的方法是扫描算法,即利用matlab扫描出m的 每一层,将离散的100幅图立体再现出来,这 样就可以重现血管了。84 for k=0:99 %k循环m的层数,即每一幅图片 for i=1:512 %i,j循环每一层中的数据值 for j=1:512 if (m(i,j,k+1)==0) %如果数据是0, 即图片上的黑色 plot3(i-257,j-257,k+1,‘b-.’); hold on %在相同位置画 蓝色,并保持画点 end,end,end,end hold off85 得到三维血管立体效果图 注意:三维扫描速度较慢, 可以采用采样描点的方法, 例如将步长增为5来进行描 点。 for i=1:5:512, for j=1:5:512在程序中可以使用rotate3d,或者按figure上的按 钮来手工旋转三维图像,得到xoy,xoz和yoz上的 投影图。86 编写程序得到各面上的投影图如下n=100; m1=size(m,1); m2=size(m,2); z=ones(1,1,n); for i=1:m1 for j=1:m2 if ~isequal(m(i,j,:),z) %注意不能写成 if m(i,j,:)~=z plot(i-257,j-257,'b.'); end end end title('xoy平面投影图');hold off87 n=100;m1=size(m,1);m2=size(m,2);z=ones(m1,1); for i=1:n for j=1:m2 if ~isequal(m(:,j,i),z) plot(j-257,i,'b.'), end, end, end title('xoz平面投影图'); hold off88 n=100;m1=size(m,1);m2=size(m,2);z=ones(1,m2); for i=1:n for j=1:m1 if ~isequal(m(j,:,i),z) plot(j-257,i,'b.'), end, end, end title(‘yoz平面投影图'); hold off89 关于程序的简单说明 1)为了提高程序的扩展性,对于512和100,应用 函数size进行替换,如:for i=1:size(m,1),for j=1:size(m,2); 2)为了提高运算,利用一个变量首先进行记录,以 替代每次计算,如:m1=size(m,1), m2=size(m,2),for i=1:m1,for j=2:m2 3)判断两个数组是否相同时,判断条件的不可使用 ==或者~=,因为[0,1,1,0]和[1,1,1,1]在判断时结果 都为假。而是使用函数isequal判断两数组相同,用 ~isequal判断两数组不同。90 关于扫描算法的总结优点:思路简单,操作方便,代码容易编写。 缺点:多维扫描速度非常缓慢;得到的图像数据点叠 加较密,不易观察;由于是扫描的结果,得不到半径 与中轴线。91 结合圆形算法和曲面管道画法得到的图形92 下面是将中轴线也标注在血管中得到图形:93 将中轴线标注在血管中并将血管半透明化得的到图形94 本章重点??线性点运算中斜率和截距的取值对图像 的影响 代数运算的特点及应用95
关键词:MATLAB 数字图像处理 图像处理工具箱 图像变换 第一章 绪论 1.1 研究...线性二元滤波设 计;图像变换;邻域和块处理;二进制图像操作;区域处理;颜色映像...的数字图像处理 0 引言众所周知,MATLAB 在数值计算...5) 图像描述图像描述是图像识别和 理解的必要前提。...图像算术运 算、几何变换、图像登记、像素值与统计...数字图像处理MATLAB指令_电脑基础知识_IT/计算机_专业资料。其他常用的图像转换...5 实验三 图像的算术运算与空间域增强使用与图像算数运算的MATLAB程序 f1=imread...《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础_计算机软件及应用_IT/计算机_专业资料。《数字图像处理(实验部分) 》教案 实验一:数字图像处理中 ...数字图像处理实验指导书 目录 实验一 MATLAB 数字图像处理初步 实验二 图像的代数运算 实验三 图像增强-空间滤波 实验四 图像分割 3 实验一一、实验目的与要求 ...《数字图像处理》习题参考答案 第1章 概述 1.1 ...第三,MATLAB擅长矩阵运算,但对于循环处理和图形界面...算术编码随信源数据不断缩小的实数区间, 然后用一个...MATLAB 强大的运算和图形展示功能,使图像处理 变得...第 5 章 图像增强 ... 5.1 空域变换增强 .....[8] 胡学龙,《数字图像处理》(第二版)[M],北京:...XX 大学实验报告课程名称: 姓名: 春花 数字图像处理 专业: 计科 项目名称: ...2、在我组成员的共同努力下,顺利实现了 Matlab 点运算、代数运算。 3、在本...matlab《数字图像处理》第4章 图像类型与彩色模型的...[0 1]; level 可以由函数 graythresh(I)计算得到...5 、索引图像→灰度图像 【格式 1】 I=ind2gray...XX 大学实验报告课程名称: 数字图像处理 姓名: 春花 专业: 计科 班级: 项目名称:__熟悉 Matlab 环境 学号: 同组成员 一、 实验准备1: 1、实验环境准备:硬件...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。MATLAB实现数字图像增强处理_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
MATLAB实现数字图像增强处理
&&软件MATLAB的应用
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢  摘要:图片中包含了巨大的信息量,而单靠人眼来获取的信息少之又少。Matlab软件提供了一系列矩阵运算和可视化功能,可以" />
免费阅读期刊
论文发表、论文指导
周一至周五
9:00&22:00
利用Matlab实现数字图像处理
  摘要:图片中包含了巨大的信息量,而单靠人眼来获取的信息少之又少。Matlab软件提供了一系列矩阵运算和可视化功能,可以提高图像分析能力,在其图像处理工具箱只需要通过调用就可以实现图像的变换,免除了自己编程所花费的时间,并可以直观容易地从处理后的图像中提取想要的信息。 中国论文网 http://www.xzbu.com/8/view-7340561.htm  关键词:数字图像处理;Matlab;图像增强;图像分割;边缘检测;几何变换 文献标识码:A   中图分类号:TP391 文章编号:(1-03 DOI:10.13535/j.cnki.11-4406/n.   1 概述   随着科学技术的迅猛发展和人们生活节奏的加快,无论是生活娱乐,还是学习工作,都要面对大量图片信息。在面对大量文字介绍和图片介绍时,人们更倾向于去看图片,但人们从中获取的信息却相当少,如何高效直观地提取所要的信息需要借助辅助工具。   2 Matlab在图像处理方面的基本介绍   Matlab是一种以矩阵为基本单元的可视化程序设计语言,功能强大、结构简单、开放性强。其中的图像处理工具箱包含15类,如图像显示函数,图像文件输入、输出函数,图像几何操作函数等。通过上述的不同的图像处理的函数的调用,来实现对图像的不同需求。   3 图像增强   3.1 图像增强的目的   为了改善图像的视觉效果,或者使图像更适合于人或机器进行分析处理,则使用图像增强来达到此目的。   3.2 图像增强的各个方法的对比   在空间域中的图像增强操作可分为区处理和点处理。   3.2.1 点处理。点处理又称为灰度变换,可分为直接灰度变换法和直方图修正法。这两个方法的目的都是使图像的对比度增强,但直接灰度变换法是通过压缩不感兴趣的区域,拉伸感兴趣的区域来达到图像增强的目的,而直方图修正法是通过修正直方图的形状来达到图像增强的目的。并且要注意灰度变换曲线一般都是单输入单输出的(单调的),这样才能使得变换前后从黑到白的顺序不变。如果是多输入单输出则会导致颜色出现混叠,而直方图有助于确定图像分割的阈值但它无法反映某一灰度级像素所在的位置,即丢失了位置信息。其中直方图修正法中分为均衡化和规定化。其中用直方图均衡化处理后的灰度级可能比处理前的少了,原因是原直方图中相对出现次数较少的灰度级被归并到一个新的灰度级上,这种现象称为简并。虽然灰度级少了,但图像反差增大,即达到了图像增强的目的。   3.2.2 区处理。区处理可分为图像平滑和图像锐化。从字面上即可看出这两个区处理是相对的。具体的实现方法是与模板卷积,模板卷积可实现图像平滑、图像锐化、边缘检测等功能。其中图像平滑的目的是消除噪声和模糊图像。有两种方法:邻域平均(均值滤波)法和中值滤波法。图像锐化目的与图像平滑相反,即使模糊的图像便清晰,可以用微分模板做卷积[一阶差分算子(roberts算子、prewitt算子、sobel算子等)或二阶差分算子(拉普拉斯算子)]。一阶微分一般产生更粗的边缘,二阶微分则产生更细的边缘并对细线、孤立点等小细节有更敏感,同样可以达到增强图像边缘的还有非锐化滤波和高增滤波。主要原理是原图像减去平滑后的图像或者是原图像加上图像的高通图像都可以达到增强边缘的效果。   3.3 图像增强在Matlab中的实例及对比   3.3.1 以下是对图像的直方图均衡化的Matlab程序:   I=imread('F:\相册\大二\mwy1.jpg');   >> I=rgb2gray(I);   >> figure(1),subplot(221),imshow(I);%原图   >> m=16;   >> H=histeq(I,m);   >> subplot(222);imshow(H,[]);%直方图均衡化后的图像   >> subplot(223);   >> hist(double(I),m);%原图的直方图   >> subplot(224);   >> hist(double(H),m);%直方图均衡化后   图像为图1:   图1   3.3.2 以下是在椒盐噪声或高斯噪声情况下的对图像平滑的两种方法对比的Matlab程序:   II=imnoise(I,'salt&pepper');%加入椒盐噪声   >> figure(2),subplot(241);imshow(I);%原图   >> subplot(242),imshow(II);%加入椒盐噪声之后的图像   >> H1=[1,2,1;2,4,2;1,2,1]/16;   >> J=imfilter(II,H1);%对加入椒盐噪声的图像进行均值滤波   >> subplot(243),imshow(J);   >> J1=medfilt2(II);%对加入椒盐噪声的图像进行中值滤波   >> subplot(244),imshow(J1);   >> subplot(245),imshow(I);%再次显示原图   >> I2=imnoise(I,'gaussian');%加入高斯噪声   >> subplot(246),imshow(I2);%显示加入高斯噪声后的图像   >> J2=imfilter(I2,H1);%对加入高斯噪声的图像进行均值滤波   >> subplot(247),imshow(J2);%显示加入高斯噪声后均值滤波的图像   >> J3=medfilt2(I2);%对加入高斯噪声的图像进行中值滤波
  >> subplot(248),imshow(J3);%显示加入高斯噪声后中值滤波的图像   图像为图2:   图2   从图中可以很直观地看出均值滤波可以很好地消除椒盐噪声,中值滤波可以很好地消除高斯噪声。   4 图像分割与边缘检测   4.1 图像分割与边缘检测的目的   在工业生产和医学分析等领域,为了将感兴趣的图像提取出来需要将这些图像与背景分割开,因为对图像区域的提取各有不同,故没有通用的分割方法,需要根据具体的问题来选取分割方法。   4.2 图像分割的方法   图像分割的方法有灰度阈值法、边缘检测与边缘连接、区域生长、区域分裂与各并、分水岭分割算等。   灰度阈值法的关键是如何确定合适阈值来使得图像分割的目的达到最优,其中的最优阈值法就是计算出一个阈值,使得总的分类误差概率最小。   区域生长是先选取一个种子像素,然后将与种子像素性质相似的像素集合起来形成一个区域,但要有先验知识才能达到想要的目的。而区域分裂与合并则不需要先验知识,它先利用一致性准则将图像分割成若干个区域,然后利用相似性准则将满足相似性的合并在一起。   边缘检测可以提取出图像的轮廓,即求梯度值,大于阈值的设为1,小于阈值的设为0,便得到了二值图像。但通过梯度算子和LOG算子卷积所得到的边缘并不连续,虽然LOG算子比梯度算子提取的细边缘更多,但仍存在连续性不足的问题。而canny边缘检测能够将不连续的状态连续起来。它考虑了梯度方向的问题,边缘细且连续有灰度。   4.3 图像分割与边缘检测在matlab程序与图片对比   >> figure(4),subplot(131),imshow(I);%原图   >> Q4=edge(I,’log’);   >> subplot(132),imshow(Q4);%用log算子卷积得到的边缘图像   >> Q5=edge(I,’canny’);   >> subplot(133),imshow(Q5);%用canny算子卷积得到的边缘图像   图像为图3:   图3   5 二值形态学   二值形态学的运算有腐蚀和膨胀、开运算(先腐蚀再膨胀)和闭运算(先膨胀再腐蚀)。   在图像处理中,笔者发现利用腐蚀运算所达到的效果与用美图秀秀等美图软件中的人眼放大功能类似。   Matlab程序如下:   >> BW1=imread('F:\相册\大二\mwy1.jpg');   >> BW1=rgb2gray(BW1);   >> SE=strel(‘arbitrary’,eye(5));   >> BW2=imerode(BW1,SE);   >> figure(5),subplot(121),imshow(BW1);   >> subplot(122),imshow(BW2);   所示图像如图4:   图4   图5   形态学在matlab中的实例与对比。可以利用开运算和闭运算的组合运用来去除噪声,先用开运算对图像进行处理,再进行闭运算后可去除大部分的噪声。   Matlab程序如下:   >> BW1=imread('F:\相册\大二\mwy1.jpg');   >> BW1=rgb2gray(BW1);   >> BW2=imnoise(BW1,’salt&pepper’);   >> SE=strel(‘arbitrary’,eye(5));%设置任意的一个结构元素   >> BW3=imerode(BW2,SE);%腐蚀运算   >> BW4=imdilate(BW3,SE);%膨胀运算   >> BW5=imdilate(BW4,SE);   >> BW6=imerode(BW5,SE);   >> figure(6),subplot(231),imshow(BW1);%显示原图像   >> subplot(232),imshow(BW2);%显示加入噪声后的图像   >> subplot(233),imshow(BW3);%显示腐蚀后的图像   >> subplot(234),imshow(BW4);%显示再膨胀后的图像   >> subplot(235),imshow(BW5);%显示再腐蚀后的图像   >> subplot(236),imshow(BW6);%显示再膨胀后的图像   图像如图5所示。   6 结语   通过利用Matlab来学习图像处理,直观形象地说明处理图像的方法,在以后的学习中将会对图像处理有更深入的了解。   参考文献   [1] 何东健.数字图像处理(第2版)[M].西安:西安电子科技大学出版社,2008.   作者简介:毛玮英(1995-),女,河南洛阳人,河南大学学生,研究方向:通信工程。   (责任编辑:黄银芳)
转载请注明来源。原文地址:
【xzbu】郑重声明:本网站资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有,如有不愿意被转载的情况,请通知我们删除已转载的信息。
xzbu发布此信息目的在于传播更多信息,与本网站立场无关。xzbu不保证该信息(包括但不限于文字、数据及图表)准确性、真实性、完整性等。}

我要回帖

更多关于 matlab导入mat数据 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信