import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import java.io.*;
import java.sql.*;
public class MedicalImageProcess extends JFrame implements ActionListener
{
JPanel jp1,jp11,jp111,jp112,jp2,jp21,jp211,jp212,northPanel,pictPanel,pict1,pict2;
JTabbedPane jtp;
JButton xianxing,fanzhuan,weicaise,pinghua,ruihua,zhongzhi,erzhihua,bianyuan;
TitledBorder titled1,titled2,titled3,titled4;
JSlider jSlider;
JMenuBar bar;
JMenu fileMenu,dataMenu;
JMenuItem openItem,exitItem,checkItem,insertItem;
JFileChooser chooser;
File file;
String filename;
Image im,tmp,tmp0;
int i,iw,ih;
int[] pixels;
Border etched1,etched2;
SoftBevelBorder softBevelBorder;
Connection con;
Statement stmt;
ResultSet rs;
String id,name,pi;
boolean flagGray = false;
boolean flagLoad = false;
boolean flag=false;
public MedicalImageProcess()
{
super("Java数字图像处理");
Container contents = getContentPane();//创建一个容器,所有基本组件都放入其中
jtp = new JTabbedPane(SwingConstants.TOP);//创建一个可以在一组组件之间切换的选项卡
jp1 = new JPanel();
jp11 = new JPanel();
jp111 = new JPanel();
jp112 = new JPanel();
jp2 = new JPanel();
jp21 = new JPanel();
jp211 = new JPanel();
jp212 = new JPanel();
northPanel = new JPanel();
pictPanel = new JPanel();
pict1 = new JPanel();
pict2 = new JPanel();
jSlider = new JSlider(JSlider.HORIZONTAL,0,255,100);//创建一个通过移动滑块来选择值的组件
xianxing = new JButton("线性灰度变换");
fanzhuan = new JButton("反转灰度变换");
weicaise = new JButton("伪彩色处理");
pinghua = new JButton("平 滑 处 理");
ruihua = new JButton("锐 化 处 理");
zhongzhi = new JButton("中 值 滤 波");
erzhihua = new JButton("二值化处理");
bianyuan = new JButton("边 缘 检 测");
titled1 = new TitledBorder("图像灰度化及伪彩色处理");
titled2 = new TitledBorder("图像平滑锐化处理及其中值滤波");
titled3 = new TitledBorder("图像二值化处理");
titled4 = new TitledBorder("图像的Robert边缘检测");
softBevelBorder = new SoftBevelBorder(2,Color.black,Color.white);//实现凹凸斜面
init();
jp111.setBorder(titled1);//设置带标题边框的边框
jp112.setBorder(titled2);
jp211.setBorder(titled3);
jp212.setBorder(titled4);
jSlider.setMajorTickSpacing(50);//设置主刻度标记间隔
jSlider.setMinorTickSpacing(10);//设置次刻度标记间隔
jSlider.setPaintTicks(true);//设置在滑块上绘制刻度标记
jSlider.setPaintTrack(true);//通知是否绘制滑块
jSlider.setPaintLabels(true);//通知是否绘制标签
jp111.add(xianxing);
jp111.add(fanzhuan);
jp111.add(weicaise);
jp112.add(pinghua);
jp112.add(ruihua);
jp112.add(zhongzhi);
jp11.setLayout(new GridLayout(1,2));
jp11.add(jp111);
jp11.add(jp112);
jp211.add(jSlider);
jp211.add(erzhihua);
jp212.add(bianyuan);
jp21.setLayout(new GridLayout(1,2));
jp21.add(jp211);
jp21.add(jp212);
jp1.setLayout(new BorderLayout());
jp2.setLayout(new BorderLayout());
pictPanel.setBorder(softBevelBorder);
northPanel.setLayout(new BorderLayout());
jp1.add(jp11);
jp2.add(jp21);
jtp.add("图 像 增 强",jp1);
jtp.add("图 像 分 割",jp2);
northPanel.add(jtp,BorderLayout.CENTER);
etched1 = BorderFactory.createEtchedBorder();//创建一个具有浮雕化外观效果的边框
etched2 = BorderFactory.createEtchedBorder();
pictPanel.setLayout(new GridLayout(0,2));
pict1.setBorder(etched1);
pict2.setBorder(etched2);
pictPanel.add(pict1);
pictPanel.add(pict2);
contents.add(northPanel,BorderLayout.NORTH);
contents.add(pictPanel,BorderLayout.CENTER);
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:image");
stmt = con.createStatement();
}
catch(Exception e){}
xianxing.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jxianxing_ActionPerformed(e);
}
});
fanzhuan.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jfanzhuan_ActionPerformed(e);
}
});
weicaise.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jweicaise_ActionPerformed(e);
}
});
pinghua.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jpinghua_ActionPerformed(e);
}
});
ruihua.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jruihua_ActionPerformed(e);
}
});
zhongzhi.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jzhongzhi_ActionPerformed(e);
}
});
jSlider.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e)
{
jerzhihua_ActionPerformed(e);
}
});
erzhihua.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jerzhihua_ActionPerformed(e);
}
});
bianyuan.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jbianyuan_ActionPerformed(e);
}
});
}
public void init()
{
bar = new JMenuBar();//创建一个菜单栏
setJMenuBar( bar );
fileMenu = new JMenu("File");//创建菜单
fileMenu.setMnemonic('F');
openItem = new JMenuItem("Open");//菜单项
openItem.setMnemonic('O');
exitItem = new JMenuItem("Exit");
exitItem.setMnemonic('X');
dataMenu = new JMenu("Data");
dataMenu.setMnemonic('D');
checkItem = new JMenuItem("Check");
checkItem.setMnemonic('C');
insertItem = new JMenuItem("Insert");
insertItem.setMnemonic('I');
fileMenu.add(openItem);
fileMenu.add(exitItem);
dataMenu.add(checkItem);
dataMenu.add(insertItem);
bar.add(fileMenu);
bar.add(dataMenu);
openItem.addActionListener(this);
exitItem.addActionListener(this);
checkItem.addActionListener(this);
insertItem.addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == openItem)
{
chooser = new JFileChooser("F:/");//文件选择器
chooser.addChoosableFileFilter(new MyFileFilter("jpg;gif", "图像文件"));
int returnVal = chooser.showOpenDialog(pictPanel);
if(returnVal == JFileChooser.APPROVE_OPTION)//选择确认(yes、ok)后返回该值
{
file = chooser.getSelectedFile();//返回选中的文件
filename = file.getPath();//将此抽象路径名转换为一个路径名字符串
jLoad_ActionPerformed(event);
}
}
else if(event.getSource() == exitItem)
{
int i = JOptionPane.showConfirmDialog(null,"要退出系统吗?","退出系统",2,2);
if(i == 0)//如果用户按的是确定
{
try
{
rs.close(); //关闭记录集
stmt.close(); //关闭Statement对象
con.close(); //关闭数据库链接
}
catch(Exception e6){}
this.dispose();//释放资源
System.exit(0);
}
}
else if(event.getSource() == checkItem)
{
try
{
int rec=0;
String s=JOptionPane.showInputDialog(null,"请输入ID");
rs = stmt.executeQuery("SELECT ID, 姓名,图片 FROM pic");
while (rs.next())
{
id= rs.getString("ID");
name= rs.getString("姓名");
pi=rs.getString("图片");
if(id.equals(s.trim()))
{
filename=pi;
jLoad_ActionPerformed(event);
rec=1;
break;
}
}
if(rec==0)JOptionPane.showMessageDialog(null,"数据库中没有此图片");
rs.close();
}
catch(Exception e2){}
}
else if(event.getSource() == insertItem)
{
try
{
String s1=JOptionPane.showInputDialog(null,"请输入ID");
String s2 = JOptionPane.showInputDialog(null,"请输入姓�
没有合适的资源?快使用搜索试试~ 我知道了~
基于java的医学图形图象处理
共46个文件
jpg:29个
class:12个
db:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 141 浏览量
2024-04-01
09:20:34
上传
评论
收藏 926KB ZIP 举报
温馨提示
基于java图形图象处理 医学图像 图像增强 图像分割 面向对象 如需要详细论文,可以联系博主获取
资源推荐
资源详情
资源评论
收起资源包目录
基于java的医学图形图象处理.zip (46个子文件)
java图形图象处理
系统
MedicalImageProcess$9.class 562B
MedicalImageProcess$2.class 562B
Thumbs.db 6KB
MedicalImageProcess$8.class 562B
MedicalImageProcess$7.class 565B
MedicalImageProcess$6.class 562B
MedicalImageProcess$10.class 563B
MedicalImageProcess$3.class 562B
MyFileFilter.class 2KB
MedicalImageProcess.java 27KB
MedicalImageProcess$1.class 562B
MedicalImageProcess$5.class 560B
MyFileFilter.java 1KB
image.mdb 228KB
MedicalImageProcess$4.class 561B
MedicalImageProcess.class 21KB
医学图片
a.JPG 11KB
1921152445793.jpg 99KB
图片12.jpg 43KB
llung4.jpg 45KB
2per14.jpg 27KB
图片4.jpg 10KB
Thumbs.db 149KB
图片13.jpg 32KB
图片3.jpg 8KB
1810065948189.jpg 33KB
312047273912.jpg 23KB
图片1.jpg 7KB
图片8.jpg 8KB
图片0000.jpg 27KB
312047103912.jpg 24KB
图片2.jpg 11KB
1514520241137.jpg 45KB
llung1.jpg 42KB
图片14.jpg 60KB
图片17.jpg 15KB
2006103017312160181.jpg 17KB
图片15.jpg 9KB
图片5.jpg 25KB
图片11.jpg 33KB
1514513841137.jpg 47KB
aaa.JPG 37KB
图片6.jpg 20KB
2005313232904.jpg 14KB
图片0002.jpg 13KB
2per11.jpg 24KB
共 46 条
- 1
资源评论
依然风yrlf
- 粉丝: 796
- 资源: 2769
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功