当前位置:   article > 正文

数字图像处理matlab实践_matlab数字图像处理实例

matlab数字图像处理实例

目录

一、任务描述 3

二、设计思路 3

三、功能模块 3

1 图像灰度化 3

2 图像二值化 4

3 图像叠加 5

4 图像目标检测 5

5 图像对数变换 6

6 图像指数变换 7

7 图像直方图均衡化 8

8图像添加噪声 平滑处理 9

9图像的边缘提取 12

10图像频域平滑 13

11图像运动模糊 14

12图像形态学处理 16

13提取红苹果 18

14硬币检测 18

15检测矩形和圆 20

16从摄像头加载图片 23

四、创新点 24

五、心得体会 24

一、任务描述

本次数字图像处理大作业选择了基础版,人物是通过matlab制作简单的图像处理工具,完成包括图像灰度化、二值化、叠加、目标检测、对数变换、指数变换、直方图均衡化、噪声添加、边缘提取、频域平滑、运动模糊、形态学处理功能。完成提取红苹果、硬币检测、矩形检测、圆检测功能。本次实验选用的界面设计不是传统的GUI界面,而是采用了matlab AppDesigner。这是Mathworks在R2016a中正式推出了GUIDE的替代产品:AppDesigner, 这是在MATLAB图形系统转向使用面向对象系统之后 (R2014b),一个重要的后续产品。 它旨在顺应Web的潮流,帮助用户利用新的图形系统方便的设计更加美观的GUI。

二、设计思路

三、功能模块

1 图像灰度化

1.1 算法原理

通过消除图像色调和饱和度信息同时保留亮度实现将RGB图像或彩色图转换为灰度图像。通过直接调用matlab内置函数rgb2gray()函数实现灰度化

1.2 算法实现(代码)

gray_img=rgb2gray(app.img);

imshow(gray_img,'Parent',app.gray_image);

1.3 实验结果及对比分析

分析:通过灰度化处理后,原来的rgb图转变成了灰度图,变成了单通道,只有介于黑白之间的灰度级像素。

2 图像二值化

2.1 算法原理

图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。

将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像,使图像变得简单,数据量减小,凸显出目标的轮廓。

所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。

2.2 算法实现(代码)

gray_img=rgb2gray(app.img);

choice = questdlg("请选择二值化方式","选择","自适应阈值","输入阈值","自适应阈值");

switch choice

case "自适应阈值" imshow( imbinarize(gray_img,graythresh(gray_img)),'Parent',app.gray_image);

case "输入阈值"

T=inputdlg("请输入阈值(0-1)");%用户输入阈值 得到cell类型值

level=transpose(str2double(cell2mat(T)));%将cell数据转为double类型

imshow( imbinarize(gray_img,level),'Parent',app.gray_image);

end

2.3 实验结果及分析

分析:图像二值化处理首先需要将图像灰度化,实验结果省略了展示图像灰度化的结果。观察实验结果,二值化后的图像变为了黑白图像,像素灰度值只有0和255两种值。图像的二值化有利于对图像进一步进行复杂处理。

3 图像叠加

3.1 算法原理

图像叠加的实质上就是将两图像相加运算,相加运算就是相同大小的图片的对应像素值进行相加再与255进行取模运算。使用内置add()可以对图像进行相加运算,两像素值相加时会得到像素值对应图像饱和值(最大值)。

3.2 算法实现(代码)

%保证两两图像大小一致

img_add = imadd(uint8(imresize(app.img,[256,256])),uint8(imresize(app.img2,[256,256])));

imshow(img_add,'Parent&

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号