数字图像处理课程的大作业,要求如下:

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。图像分割后提取出的目标可以用于图像语义识别,图像搜索等等领域。
要求1:输入一副真彩色RGB图像dog.jpg,完成对小狗的分割,输入结果为只包含小狗区域的二值图(matlab环境下,小狗区域值为1,其他区域值为0)。
要求2:设计一个简单的图形用户界面GUI,显示输入图像和输出图像

  1. <pre name="code" class="plain">function varargout = DIP(varargin)
  1. %DIP MATLAB code for DIP.fig
  2. %DIP, by itself, creates a new DIP or raises the existing
  3. %singleton*.
  4. %
  5. %H = DIP returns the handle to a new DIP or the handle to
  6. %the existing singleton*.
  7. %
  8. %DIP('CALLBACK',hObject,eventData,handles,...) calls the local
  9. %function named CALLBACK in DIP.M with the given input arguments.
  10. %
  11. %DIP('Property','Value',...) creates a new DIP or raises the
  12. %existing singleton*. Starting from the left, property value pairs are
  13. %applied to the GUI before DIP_OpeningFcn gets called. An
  14. %unrecognized property name or invalid value makes property application
  15. %stop. All inputs are passed to DIP_OpeningFcn via varargin.
  16. %
  17. %*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
  18. %instance to run (singleton)".
  19. %
  20. %See also: GUIDE, GUIDATA, GUIHANDLES
  21.  
  22. %Edit the above text to modify the response to help DIP
  23.  
  24. %Last Modified by GUIDE v2.5 07-Jun-2015 01:02:20
  25.  
  26. %Begin initialization code - DO NOT EDIT
  27. gui_Singleton = 1;
  28. gui_State = struct('gui_Name', mfilename, ...
  29. 'gui_Singleton', gui_Singleton, ...
  30. 'gui_OpeningFcn', @DIP_OpeningFcn, ...
  31. 'gui_OutputFcn', @DIP_OutputFcn, ...
  32. 'gui_LayoutFcn', [] , ...
  33. 'gui_Callback', []);
  34. if nargin && ischar(varargin{1})
  35. gui_State.gui_Callback = str2func(varargin{1});
  36. end
  37.  
  38. if nargout
  39. [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
  40. else
  41. gui_mainfcn(gui_State, varargin{:});
  42. end
  43. % End initialization code - DO NOT EDIT
  44.  
  45. % --- Executes just before DIP is made visible.
  46. function DIP_OpeningFcn(hObject1, ~, handles1, varargin)
  47. % This function has no output args, see OutputFcn.
  48. % hObject handle to figure
  49. % eventdata reserved - to be defined in a future version of MATLAB
  50. % handles structure with handles and user data (see GUIDATA)
  51. % varargin command line arguments to untitled6 (see VARARGIN)
  52. im=imread('dog.jpg'); %第一张图片的显示
  53. axes(handles1.axes1);
  54. guidata(hObject1, handles1);
  55. hold on;
  56. imshow(im);
  57. handles1.output = hObject1;
  58. % Update handles structure
  59. guidata(hObject1, handles1);
  60.  
  61. % UIWAIT makes DIP wait for user response (see UIRESUME)
  62. % uiwait(handles.figure1);
  63.  
  64. % --- Outputs from this function are returned to the command line.
  65. function varargout = DIP_OutputFcn(~, ~, handles)
  66. % varargout cell array for returning output args (see VARARGOUT);
  67. % hObject handle to figure
  68. % eventdata reserved - to be defined in a future version of MATLAB
  69. % handles structure with handles and user data (see GUIDATA)
  70.  
  71. % Get default command line output from handles structure
  72. varargout{1} = handles.output;
  73.  
  74. % --- Executes on button press in pushbutton1.
  75. function pushbutton1_Callback(axes2, ~,handles2 )
  76. % hObject handle to pushbutton1 (see GCBO)
  77. % eventdata reserved - to be defined in a future version of MATLAB
  78. % handles structure with handles and user data (see GUIDATA)
  79. I=imread('dog.jpg');
  80. I1=rgb2hsv(I); %转到HSV空间
  81. I2=I1(:,:,2); %S分量
  82. BW1=im2bw(I2,0.4);
  83. bw1=BW1(80:650,45:680); %分割
  84. peng = strel('diamond', 2);
  85. bw11=imdilate(bw1,peng,'same'); %膨胀
  86. bw111=~bw11; %取反
  87. saveas(gcf,'dog1','jpg');
  88. axes(handles2.axes2);
  89. guidata(axes2, handles2);
  90. hold on;
  91. imshow(bw111); %显示处理完成的图片

处理完成的图像,效果还不错:

DIP大作业---图像分割的更多相关文章

  1. 数据库大作业--由python+flask

    这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是 ...

  2. 程设大作业xjb写——魔方复原

    鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR ...

  3. 大作业NABC分析结果

    大作业NABC分析结果 这次的大作业计划制作一款关于七巧板的游戏软件.关于编写的APP的NABC需求分析: N:需求 ,本款软件主要面向一些在校的大学生,他们在校空闲时间比较多,而且热衷于一些益智类游 ...

  4. [留念贴] C#开发技术期末大作业——星月之痕

    明天就要去上海大学参加 2015赛季 ACM/ICPC最后一场比赛 —— EC-Final,在这之前,顺利地把期末大作业赶出来了. 在这种期末大作业10个人里面有9个是从网上下载的国内计算机水平五六流 ...

  5. Hadoop综合大作业

    Hadoop综合大作业 要求: 用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计. 用Hive对爬虫大作业产生的csv文件进行数据分析 1. 用Hive对爬虫大作业产 ...

  6. 爬虫综合大作业——网易云音乐爬虫 & 数据可视化分析

    作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ...

  7. 期末Java Web大作业----简易的学生管理系统

    学生信息管理系统(大作业) 2018-12-21:此文章已在我的网站更新,添加视图介绍等信息,源码请移步下载https://www.jeson.xin/javaweb-sims.html PS:首先不 ...

  8. CSAPP HITICS 大作业 hello's P2P by zsz

    摘 要 摘要是论文内容的高度概括,应具有独立性和自含性,即不阅读论文的全文,就能获得必要的信息.摘要应包括本论文的目的.主要内容.方法.成果及其理论与实际意义.摘要中不宜使用公式.结构式.图表和非公知 ...

  9. #006 C语言大作业学生管理系统第三天

    还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...

随机推荐

  1. 【C#常用方法】3.将DataTable一次性插入数据库表中(使用SqlBulkCopy)

    将DataTable一次性插入数据库表中(使用SqlBulkCopy) 1.SqlBulkCopy简介 SqlBulkCopy类是ADO.NET中专门用于数据库批量插入数据的类,其批量插入的执行速度是 ...

  2. js图片压缩+ajax上传

    图片压缩用到了localresizeimg 地址: https://github.com/think2011/localResizeIMG 用起来比较简单 <input type="f ...

  3. APS.NET MVC + EF (08)---数据注解和验证

    对于Web开发人员来说,用户输入验证一直是一个挑战.不仅在客户端浏览器中需要执行验证逻辑,在服务器端也需要执行.如果觉得验证是令人望而生畏的繁杂琐事,ASP.NET MVC框架提供了数据注解的方式帮助 ...

  4. Beego学习笔记5:MVC-VC

    MVC-VC 1>     新建一个user.go控制器,其代码如下: package controllers import ( "webapp/models" " ...

  5. JavaScript API 与 DOM

    一.API 1.API 的概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供引用程序与开发人员基于某软件或硬件得以访问 ...

  6. ML-软间隔(slack)的 SVM

    Why Slack? 为了处理异常值(outlier). 前面推导的svm形式, 是要求严格地全部分对, 基于该情况下, 在margin 的边界线 线上的点, 只能是支持向量. \(min_w \ \ ...

  7. NumPy 之 ndarray 多维数组初识

    why 回顾我的数据分析入门, 最开始时SPSS+EXCEL,正好15年初是上大一下的时候, 因为统计学的还蛮好的, SPSS傻瓜式操作,上手挺方便,可渐渐地发现,使用软件的最不好的地方是不够灵活, ...

  8. Mysql 存储过程初识

    存储过程 认识 在一些编程语言中, 如pascal, 有一个概念叫"过程" procedure, 和"函数" function, 如VB中的sub. Java, ...

  9. postgresql基于备份点PITR恢复

    实验目的: 01.基于备份点直接恢复数据库 02.基于备份点后续增量wal日志恢复到特定的时间点 实验环境: centos7 postgresql9.5 01.安装postgresql9.5 post ...

  10. Nexus安装和使用

    1.前言 最近项目需要搭建maven私服,方便管理后期团队成员使用上传自己的包,因此决定使用nexus来搭建私服,搭建好的nexus地址. 2.准备工作 阿里云服务器ECS一台 1核CPU 2G内存( ...