数字图像处理之matlab大作业:自制图像处理小工具

这篇具有很好参考价值的文章主要介绍了数字图像处理之matlab大作业:自制图像处理小工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习的过程向来不是容易的,创造一个作品的过程更是不容易的。因此,在文章的最后,提供了两个现成的示例代码,大家直接可以拿来运行。在完成大作业的时候,大家可以在已有作品的基础上,按照自己的需求进行修改,添加我们课程要求的功能,并体会如何完成一个完整的项目。 

特别特别希望大家可以把下面的小功能整合成一个完整的项目~  期待!

下面分功能演示实现细节(这些功能源自于发布的大作业要求):

1、导入图片(或从摄像头加载图片 );

1)选择文件夹打开照片;

数字图像处理之matlab大作业:自制图像处理小工具数字图像处理之matlab大作业:自制图像处理小工具

% '*.*'为显示当前文件夹中的所有文件;
% select a picture为文件对话框的标题;
% 'multiselect','on'为打开选择多个模式(默认为关);
% '.\'为要打开的文件路径
[file,path] = uigetfile('*.*','select a picture','multiselect','on','.\'); 
file_path=fullfile(path,file);
img=imread(file_path);
imshow(img);
title("原图像");

2)从摄像头加载图片;

加载摄像头需要获取硬件支持,所以在matlab上需要安装一个类似于驱动的软件,安装了好久网速不给力呀 ~   具体细节可参考:

MATLAB调用USB摄像头实现过程_飞天长虹的博客-CSDN博客_matlab调用摄像头

数字图像处理之matlab大作业:自制图像处理小工具

clear,clc,close all;
vid = videoinput('winvideo', 1, 'YUY2_640x480')
set(vid,'ReturnedColorSpace','rgb');
vidRes=get(vid,'VideoResolution');
width=vidRes(1);
height=vidRes(2);
nBands=get(vid,'NumberOfBands');
hImage=image(zeros(vidRes(2),vidRes(1),nBands));
preview(vid,hImage);
start(vid);
img = getsnapshot(vid);
image(img);
imshow(img);title("摄像头获取图像");
 

2、彩色图像灰度化;

3、灰度图像二值化;

4、目标检测(即两幅图像相减);

 功能2-4,请参考本人博客数字图像处理之matlab实验(一):基本操作_苗妮的博客-CSDN博客_matlab 形态学区域填充

5、图像的灰度变换(包括指数变换、对数变换);

6、直方图均衡化 

显示处理后图像和处理后图像直方图;处理前后对比效果显示在一张图中。

 功能5-6,请参考本人博客

数字图像处理之matlab实验(二):图像增强_苗妮的博客-CSDN博客

7、图像平滑(去除噪声)

对图像分别添加高斯噪声和椒盐噪声,并分别用均值滤波器、中值滤波器、高斯滤波器处理,并将处理结果显示在一张图中;

8、图像锐化(提取边缘)

分别采用robert和二阶算子提取图像边缘,并将处理结果显示在一张图中;

 功能7-8,请参考本人博客

数字图像处理之matlab实验(三):空间滤波器_苗妮的博客-CSDN博客

9、频域处理

对图像做平滑处理和提取边缘,并将处理结果显示在一张图中;

10、图像复原

对原图做运动模糊,并进行图像复原处理,将原图、模糊图、恢复后的模糊图显示在一张结果图中;

功能9-10,参考本人博客:

11、形态学处理

(1)腐蚀、(2)膨胀、(3)开运算、(4)闭运算处理、(5)形态学滤波、(6)击中与不击中变换;

功能11,参考本人博客

数字图像处理之matlab实验(五):形态学图像处理_苗妮的博客-CSDN博客

12、图像分割(提取图中的红苹果) 

(1)将已知图像进行消噪处理

(2)对彩色图像进行目标和背景分析

(3)通过颜色将图像进行分割

(4)进行形态学处理,提取目标

在将苹果分割的过程中,我们发现直方图分割、阈值分割在这个场景下是失效的,此处给出的是kmeans算法,当然基于颜色的分割效果理论上也是ok的,代码可以自己尝试写一下。

数字图像处理之matlab大作业:自制图像处理小工具

clear,clc,close all;
Image=imread('fruit.jpg');
subplot(121);imshow(Image),title('原图像'); 
hsv=rgb2hsv(Image);
h=hsv(:,:,1);
h(h>330/360)=0;
[N,M]=size(h);
training=h(:);
startdata = [0;60/360;120/360;180/360;240/360;300/360];
[IDX,C]= kmeans(training,6,'Start',startdata);
idbw = (IDX == 1);
template = reshape(idbw, size(h));
subplot(122);imshow(template),title('分割后的图像');
imwrite(template,'clusterseg.jpg');

13、硬币检测及计数 

(1)分割硬币

(2)去除噪声

(3)连通区域判断硬币个数 

数字图像处理之matlab大作业:自制图像处理小工具

Image=imread('coin.bmp');
subplot(131),imshow(Image),title('原图像');
BW=im2bw(Image);
SE=strel('square',6);
subplot(132),imshow(BW),title('二值图像');
result1=imopen(imclose(BW,SE),SE);               %先闭后开
subplot(133);imshow(result1);title('先闭后开');
[L, NUM] = bwlabel(result1, 4) %检测二值图像中连通域的个数
%[L, NUM] = bwlabel(BW, N)
% BW 为输入二值化图像;
% N 可取值为4或8表示连接四连通或八连通区域;
% NUM 为找到的连通区域数目;
% L 为输出图像矩阵,其元素值为整数,背景被标记为0,第一个连通区域被标记为1,第二个连通区域被标记为2,依此类推.所以你不明白的1,2,3即为第1,2,3个连通区域的标记
S=sprintf('检测到的硬币个数为:%d',NUM);msgbox(S);%弹窗显示运行结果

 14、检测特定的形状

本例演示了如何检测矩形:

数字图像处理之matlab大作业:自制图像处理小工具

clear,clc,close all;
image=rgb2gray(imread('shape.png'));
subplot(151),imshow(image),title('原图');
BW=edge(image,'canny');
subplot(152),imshow(BW),title('边界图像');
% imwrite(BW,'shapeedge.jpg');
SE=strel('disk',5); 
Morph=imclose(BW,SE);
subplot(153),imshow(Morph),title('形态学滤波'); 
% imwrite(Morph,'shapemorph.jpg');
Morph=imfill(Morph,'holes');
subplot(154),imshow(Morph),title('区域填充');
imwrite(Morph,'shapefill.jpg');
[B,L]=bwboundaries(Morph);
subplot(155),imshow(L),title('检测圆和矩形');
% imwrite(L,'Lplane.jpg');
STATS = regionprops(L,'Area', 'Centroid','BoundingBox');
len=length(STATS);
hold on
for i=1:len
    R=STATS(i).Area/(STATS(i).BoundingBox(3)*STATS(i).BoundingBox(4));
    boundary=fliplr(B{i});
    everylen=length(boundary);
    F=4*pi*STATS(i).Area/(everylen^2);
    dis=pdist2(STATS(i).Centroid,boundary,'euclidean');
    miu=sum(dis)/everylen;
    sigma=sum((dis-miu).^2)/everylen;
    C=miu/sigma;
    if R>0.9 && F<1 
        rectangle('Position',STATS(i).BoundingBox,'edgecolor','g','linewidth',2);
        plot(STATS(i).Centroid(1),STATS(i).Centroid(2),'g*');
    end
    if R>pi/4-0.1 && R<pi/4+0.1 && F>0.9 && C>10
        rectangle('Position',[STATS(i).Centroid(1)-miu,STATS(i).Centroid(2)-miu,2*miu,2*miu],...
            'Curvature',[1,1],'edgecolor','r','linewidth',2); 
        plot(STATS(i).Centroid(1),STATS(i).Centroid(2),'r*');
    end
end
hold off

15 、用Matlab设计实现图形化界面。

调用后台函数完成设计,函数可以调用Matlab工具箱中的函数,也可以自己编写函数。设计完成后,点击GUI图形界面上的菜单或者按钮,在某些图像处理操作中能够接收参数,进行必要的交互式操作后,最终能显示运行结果。可以参考例子如下:

1)视频参考:Matlab图像处理GUI(附代码)_哔哩哔哩_bilibili

附上源码链接:https://pan.baidu.com/s/11dTBQUX2NMalT-yi1sm70Q 提取码:dwqm

数字图像处理之matlab大作业:自制图像处理小工具

 2)这个忘记代码链接了,会把代码发群里。

数字图像处理之matlab大作业:自制图像处理小工具

16、优秀作品展示

1)曾同学的作品,详细参考她的博客,界面很清新,稍后会附上源码链接:基于MATLAB APP Designer设计图像处理小工具_栗几memeji的博客-CSDN博客

数字图像处理之matlab大作业:自制图像处理小工具

 2)代同学的作品:

3)其他可以参考的作品:

数字图像处理MATLAB大作业:基础版_黑瘦真的好看的博客-CSDN博客matlab大作业——基础模板设计_阿喜。的博客-CSDN博客

数字图像处理之matlab大作业:基础版图像处理工具_...._L的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-497254.html

到了这里,关于数字图像处理之matlab大作业:自制图像处理小工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数字图像处理之matlab大作业:美图秀秀

    1、放大缩小 从变量上看,图片是放大缩小了,但显示出来有点问题,应该是显示设置的原因。缩小的这张图不就是马赛克么~  2、翻转和旋转    3、图像剪切  4、图像增强(提高对比度) 5、磨皮 6、美白 参考:【数字图像处理】实验(3)——图像综合应用:皮肤美化(

    2024年02月11日
    浏览(27)
  • 美颜算法--数字图像处理作业

    请为图中人做美肌处理,去痘或去皱纹。(2选1,或自选图片) 作业内容请包含所用的算法说明,效果图,主要算法的代码,以及对效果图的分析。所有内容用图片或文字的形式提交,不要用附件。 2.1 分析问题         图一可见大量痘点,痘点在途中属于噪声,考虑首先

    2024年02月03日
    浏览(31)
  • 数字图像处理大作业实验报告

         《数字图像处理》 期末大作业 班    级:数字媒体技术2020级1班 姓    名:快乐的小蓝 学    号:XXXXXXXXX XXXX大学信息学院 目录 一、任务描述 二、设计思路 三、功能模块 1 人脸定位 1.1 算法原理 1.检测最大连通域 2.基于肤色的检测 3.使用matlab自带的工具人脸识别

    2023年04月23日
    浏览(39)
  • 数字图像处理期末大作业-美图秀秀

    本项目是以matlab为主语言并设计GUI界面的一款简易美图秀秀,包含基础的图像处理和一些常见美颜算法 对于一些matlab较难实现的算法采用C++或python来实现 ⭐️ github地址:https://github.com/mibbp/MeituShow 里面有我完整的代码,你想直接运行记得看readme配置一下环境,本博客更多的

    2024年02月09日
    浏览(39)
  • 数字图像处理——大作业 基于车道信息的违法车辆车牌识别

    车牌识别系统广泛应用于交通管理、收费站、城市交叉口、港口和机场、机动车检测、停车场管理等不同的场所,对提高这些场所交通系统的管理水平和自动化程度具有重要的意义[1]。车牌自动识别系统主要包括车牌定位、车牌分割、车牌字符识别三部分。 其中,仅就车牌字

    2024年02月07日
    浏览(41)
  • 数字图像处理-matlab图像内插

    目标各像素点的灰度值代替源图像中与其最邻近像素的灰度值 参考博客 假设一个2X2像素的图片采用最近邻插值法需要放大到4X4像素的图片,右边该为多少? 最近邻插值法坐标变换计算公式: s r c X = d s t X ∗ ( s r c W i d t h / d s t W i d t h ) srcX=dstX*(srcWidth/dstWidth) src X = d s tX ∗

    2024年02月03日
    浏览(45)
  • 基于matlab的数字图像处理之彩色图像处理

    一、实验目的 (1)了解如何利用RGB分量生成简单的图像。 (2)熟练掌握RGB彩色模型转换到HIS彩色模型的过程。 (3)熟练掌握RGB图像的彩色分割。 (4)熟练掌握彩色图像如何在向量空间中进行边缘检测。 二、实验仪器(软件平台)     计算机、MATLAB软件 三、实验原理

    2024年02月06日
    浏览(35)
  • matlab数字图像处理之图像增强

    图像处理 基本目的之一是改善图像质量,而改善图像最常用的技术是图像增强的目的是为了改善图像的视觉效果,使图像更加清晰,便于人和计算机对图像进一步的分析和处理 图像质量 的基本含义是指人们对一幅图像视觉感受的评价。图像增强的目的就是为了改善图像显示

    2024年02月04日
    浏览(41)
  • 数字图像处理实验之Matlab对图像的基本处理

    1、提取Lena图像的左半上角部分,与原始Lena图像在同一个figure中显示,并做适当命名 效果图 2、利用 imnoise , 对原始Lena图像叠加高斯噪声,产生4幅、14幅、140幅的含噪图像。对这些含噪图像采用 相加  运算,来验证、比较图像相加消除叠加性噪声的效果。将原始图像、1幅噪

    2024年02月03日
    浏览(42)
  • 数字图像处理 关于matlab的图像变换

    熟悉及掌握图像的傅里叶变换、离散余弦变化原理及性质,实现图像的频率域变换。 1. 读入一幅图像,分别为图像添加叠加密度为0.04的椒盐噪声,均值为0方差为0.02的高斯噪声,做FFT变换。将原始图像、原始图像频谱图、添加噪声后的图像,以及噪声图像的频谱图同时显示出

    2024年02月05日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包