基于谱聚类的图像分割

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科生毕业设计

姓名:学号:

学院:计算机科学与技术学院

专业:计算机科学与技术

设计题目:基于谱聚类的图像分割

专题:图像分割的设计与实现

指导教师:职称:副教授

大学毕业设计任务书

学院计算机专业年级学生姓名

任务下达日期:

毕业设计日期:

毕业设计题目:

毕业设计专题题目

毕业设计主要内容和要求:

院长签章:指导教师签字:

中国矿业大学毕业设计指导教师评阅书

指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等):

成绩:指导教师签字:

年月日

中国矿业大学毕业设计评阅教师评阅书

评阅教师评语(①选题的意义;②基础理论及基本技能的掌握;③综合运用所学知识解决实际问题的能力;③工作量的大小;④取得的主要成果及创新点;⑤写作的规范程度;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等):

成绩:评阅教师签字:

年月日

中国矿业大学毕业设计答辩及综合成绩

需求分析

一、利用前台,得到一张原始JPG图片;

二、把这张图片传到后台,JAVA通过JRI调用R;

三、利用R调用K-Means的改进算法,实现对这张图片的处理,由于一张图片的

像素值是一个矩阵,可以得到一组关于像素值的数据;

四、把这组像素值进行分类,对各类赋予不同的颜色进行标记,从而区分出需要的

图片信息;

五、把得到的新图片传到前台;

六、前台对进行处理后的图片进行显示,从图像中得到需要的信息,从而实现图像

的分割。

概要设计

模块功能图:

图片:在本系统中所能使用到的图片属性为颜色和大小,颜色对应不同的像素,大小对应图像的像素点形成矩阵的大小;

前台:前台用来接收图片和显示图片;

后台(JA V A):用来接收图片并且调用R来实现对图片的处理;

后台(R):在被调用后,把图片信息转化成数据信息形成矩阵,从而实现对图片信息的处理。

经过上述的处理后,把新生成的图像信息返回,并在前端进行显示,从而实现图像分割。

把图像分割系统划分成二个子系统:接收图片并显示子系统,处理图片子系统。首先从外界得到需要进行分割的图片,通过接收图片并显示子系统把图片进行输入到系统中;然后再把图片输入到处理图片子系统,输入此系统后,把图片信息转化为矩阵,然后利用JA V A调用R,利用R中K-MEANS算法对矩阵信息进行分类获得新的矩阵,最终把矩阵信息转化成图片,实现对图片的处理;最后把处理后得到的新图片输入到显示图片子系统,从而实现图像分割,获得所需要的信息。

详细设计程序流程图:

实现代码;

一.实现图片文件选择器:

package pri.study.convert;

import java.awt.EventQueue;

import javax.swing.ImageIcon;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.File;

import javax.swing.JButton;

import org.rosuda.REngine.REXPMismatchException;

import org.rosuda.REngine.Rserve.RserveException;

public class MyApp implements ActionListener {

private JFrame frame;

JButton selectPrePic = new JButton("选择要转换的图片");

JLabel prePic = new JLabel("New label");

JLabel label = new JLabel("转换前的图片:");

JButton convertPic = new JButton("转换图片");

JLabel label_1 = new JLabel("转换后的图片:");

JLabel label_2 = new JLabel("提示:转换后的图片默认放在转换前图片所在目录下");

JLabel curPic = new JLabel("转化浓厚的图片");

JFileChooser jfc = new JFileChooser();// 文件选择器

private int i=0;

String prePicPath="";

String curPicPath="";

/**

* Create the application.

*/

public MyApp() {

initialize();

}

/**

* Initialize the contents of the frame.

*/

private void initialize() {

jfc.setCurrentDirectory(new File("d://"));// 文件选择器的初始目录定为d盘

frame = new JFrame();

frame.setBounds(200, 150, 880, 400);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel myPanel=new JPanel();

myPanel.setLayout(null);

frame.getContentPane().add(myPanel, BorderLayout.CENTER);

selectPrePic.addActionListener(this);

selectPrePic.setBounds(10, 10, 153, 23);

convertPic.addActionListener(this);

convertPic.setBounds(423, 9, 93, 23);

prePic.setBounds(20, 90, 320, 250);

curPic.setBounds(423, 90, 320, 250);

label.setBounds(20, 42, 139, 15);

label_1.setBounds(423, 42, 143, 15);

label_2.setBounds(423, 65, 320, 15);

myPanel.add(prePic);

myPanel.add(label);

myPanel.add(convertPic);

myPanel.add(label_1);

myPanel.add(label_2);

myPanel.add(curPic);

myPanel.add(selectPrePic);

// ImageIcon ico=new ImageIcon("d:/myPlotPic.png");

// JLabel lblPrepic = new JLabel("hebe",ico,JLabel.CENTER);

相关文档
最新文档