欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    图像处理作业.docx

    • 资源ID:8979296       资源大小:337.04KB        全文页数:30页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    图像处理作业.docx

    1、图像处理作业图 像 处 理 作 业一、题目:编写程序对一个bmp图像统计直方图,并进行均衡化处理。二、程序完成情况: (一)、简介本程序采用java语言编写,在Borland JBuilder X下编译通过。由于本人在软件编程方面并不擅长,且java语言学习时间不长,程序内一定会有很多不合适的语句。谢谢老师在百忙之中批改我的作业! (二)程序界面1、主界面2、选择文件3、打开4、统计直方图5、均衡化处理6、处理后的直方图三、源程序Frame1.javapackage cl.lesson.txcl;import java.io.*;import java.awt.*;import java.aw

    2、t.Toolkit;import java.awt.image.*;import .*;import .MalformedURLException;import java.awt.event.*;import javax.swing.*;import javax.swing.filechooser.FileFilter;import java.awt.Image;import java.awt.Toolkit;import java.awt.image.BufferedImage;import java.awt.image.MemoryImageSource;import java.io.Fi

    3、leInputStream;import java.io.FileOutputStream;/java包调用/* * Title: * Description: * Copyright: Copyright (c) 2004 * Company: * 陈磊 * version 1.0 */文件信息public class Frame1 extends JFrame JPanel contentPane; JMenuBar jMenuBar1 = new JMenuBar(); JMenu jMenuFile = new JMenu(); JMenuItem jMenuFileExit = ne

    4、w JMenuItem(); JMenu jMenuHelp = new JMenu(); JMenuItem jMenuHelpAbout = new JMenuItem(); JToolBar jToolBar = new JToolBar(); JButton jButton1 = new JButton(); JButton jButton2 = new JButton(); JButton jButton3 = new JButton(); ImageIcon image1; ImageIcon image2; ImageIcon image3; BorderLayout borde

    5、rLayout1 = new BorderLayout(); JTabbedPane jTabbedPane1 = new JTabbedPane(); Toolkit tk; MediaTracker mtrack; Image img; int ImageWidth; int ImageHeight;/分别为图像的宽度与高度值 int PixelsSource;/ImageWidth*ImageHeigh String theFile; String theDir; Thread runMe; JMenuItem jMenuFileOpen = new JMenuItem(); JMenu

    6、Item jMenuSave = new JMenuItem(); JMenu jMenuPlay = new JMenu(); JMenuItem jMenuItem1 = new JMenuItem(); JMenuItem jMenuItem2 = new JMenuItem(); /Construct the frame public Frame1() enableEvents(AWTEvent.WINDOW_EVENT_MASK); try jbInit(); catch(Exception e) e.printStackTrace(); /Component initializat

    7、ion private void jbInit() throws Exception image1 = new ImageIcon(cl.lesson.txcl.Frame1.class.getResource(openFile.png); image2 = new ImageIcon(cl.lesson.txcl.Frame1.class.getResource(closeFile.png); image3 = new ImageIcon(cl.lesson.txcl.Frame1.class.getResource(help.png); contentPane = (JPanel) thi

    8、s.getContentPane(); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(533, 409); this.setTitle(图象处理); jMenuFile.setText(文件); jMenuFileExit.setText(离开); jMenuFileExit.addActionListener(new Frame1_jMenuFileExit_ActionAdapter(this); jMenuHelp.setToolTipText(); jMenuHelp.setText(帮助); jMen

    9、uHelpAbout.setText(关于); jMenuHelpAbout.addActionListener(new Frame1_jMenuHelpAbout_ActionAdapter(this); jButton1.setIcon(image1); jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this); jButton1.setToolTipText(打开文件); jButton2.setIcon(image2); jButton2.setToolTipText(存储文件); jButton3.setIc

    10、on(image3); jButton3.addActionListener(new Frame1_jButton3_actionAdapter(this); jButton3.setToolTipText(帮助); contentPane.setAlignmentY(float) 0.5); contentPane.setDebugGraphicsOptions(0); contentPane.setToolTipText(); jMenuFileOpen.setToolTipText(); jMenuFileOpen.setText(打开); jMenuFileOpen.addAction

    11、Listener(new Frame1_jMenuFileOpen_actionAdapter(this); jMenuSave.setText(存储); jMenuSave.addActionListener(new Frame1_jMenuSave_actionAdapter(this); jMenuPlay.setText(图像处理); jMenuItem1.setText(绘制直方图); jMenuItem1.addActionListener(new Frame1_jMenuItem1_actionAdapter(this); jMenuItem2.setText(均衡化处理); j

    12、MenuItem2.addActionListener(new Frame1_jMenuItem2_actionAdapter(this); jToolBar.add(jButton1); jToolBar.add(jButton2); jToolBar.add(jButton3); contentPane.add(jTabbedPane1, BorderLayout.CENTER); jMenuFile.add(jMenuFileOpen); jMenuFile.add(jMenuSave); jMenuFile.add(jMenuFileExit); jMenuHelp.add(jMenu

    13、HelpAbout); jMenuBar1.add(jMenuFile); jMenuBar1.add(jMenuPlay); jMenuBar1.add(jMenuHelp); this.setJMenuBar(jMenuBar1); contentPane.add(jToolBar, BorderLayout.NORTH); jMenuPlay.add(jMenuItem1); jMenuPlay.add(jMenuItem2); /File | Exit action performed public void jMenuFileExit_actionPerformed(ActionEv

    14、ent e) System.exit(0); /Help | About action performed public void jMenuHelpAbout_actionPerformed(ActionEvent e) Frame1_AboutBox dlg = new Frame1_AboutBox(this); Dimension dlgSize = dlg.getPreferredSize(); Dimension frmSize = getSize(); Point loc = getLocation(); dlg.setLocation(frmSize.width - dlgSi

    15、ze.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y); dlg.setModal(true); dlg.pack(); dlg.show(); /菜单说明帮助项 /Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) super.processWindowEvent(e); if (e.getID() = WindowEvent.WINDOW_CLOSING) jMenu

    16、FileExit_actionPerformed(null); /菜单关闭项 void jButton3_actionPerformed(ActionEvent e) Frame1_AboutBox dlg = new Frame1_AboutBox(this); Dimension dlgSize = dlg.getPreferredSize(); Dimension frmSize = getSize(); Point loc = getLocation(); dlg.setLocation(frmSize.width - dlgSize.width) / 2 + loc.x, (frmS

    17、ize.height - dlgSize.height) / 2 + loc.y); dlg.setModal(true); dlg.pack(); dlg.show(); /快捷图标帮助 public void getImageFromFile(String path) tk=Toolkit.getDefaultToolkit(); img = tk.getImage(path); /以下为主要内容,选择打开一个bmp图像文件,并对其分析读取。 void jButton1_actionPerformed(ActionEvent e) Image image; /构造一个目标图 String

    18、result=; /返回结果 FileDialog fd = new FileDialog(this,请选择一个bmp图像文件!); fd.setMode(FileDialog.LOAD); fd.setVisible(true); theFile = fd.getFile(); theDir = fd.getDirectory(); String thePath = theDir+theFile; FileInputStream fs=new FileInputStream(thePath); int bflen=14; byte bf=new bytebflen; fs.read(bf,0

    19、,bflen); /读取14字节BMP文件头 int bilen=40; byte bi=new bytebilen; fs.read(bi,0,bilen); /读取40字节BMP信息头 / 获取一些重要数据 int nwidth=(int)bi7&0xff)24) /源图宽度 | (int)bi6&0xff)16) | (int)bi5&0xff)8) | (int)bi4&0xff; System.out.println(宽:+nwidth); int nheight=(int)bi11&0xff)24) /源图高度 | (int)bi10&0xff)16) | (int)bi9&0xf

    20、f)8) | (int)bi8&0xff; System.out.println(高:+nheight); /位数 int nbitcount=(int)bi15&0xff)8) | (int)bi14&0xff; System.out.println(位数:+nbitcount); /源图大小 int nsizeimage=(int)bi23&0xff)24) | (int)bi22&0xff)16) | (int)bi21&0xff)8) | (int)bi20&0xff; System.out.println(源图大小:+nsizeimage); /对24位BMP进行解析 if(nbit

    21、count=24) int npad=(nsizeimage/nheight)-nwidth*3; int ndata=new intnheight*nwidth; byte brgb=new byte(nwidth+npad)*3*nheight; fs.read (brgb,0,(nwidth+npad)*3*nheight); int nindex=0; for(int j=0;jnheight;j+) for(int i=0;inwidth;i+) ndata nwidth*(nheight-j-1)+i= (255&0xff)24 | (int)brgbnindex+2&0xff)1

    22、6) | (int)brgbnindex+1&0xff)8) | (int)brgbnindex&0xff; nindex+=3; nindex+=npad; Toolkit kit=Toolkit.getDefaultToolkit(); image=kit.createImage(new MemoryImageSource(nwidth,nheight, ndata,0,nwidth); result=从BMP得到图像image; System.out.println(从BMP得到图像image); else result=不是24位BMP,失败!; System.out.println(

    23、不是24位BMP,失败!); image=(Image)null; fs.close(); /关闭输入流 /因为同时有菜单项和快捷图标,所以以下模块内容和上面这个模块一样。下面是菜单项打/开。 void jMenuFileOpen_actionPerformed(ActionEvent e) Image image; /构造一个目标图 String result=; /返回结果 FileDialog fd = new FileDialog(this,请选择一个bmp图像文件!); fd.setMode(FileDialog.LOAD); fd.setVisible(true); theFile

    24、 = fd.getFile(); theDir = fd.getDirectory(); String thePath = theDir+theFile; FileInputStream fs=new FileInputStream(thePath); int bflen=14; byte bf=new bytebflen; fs.read(bf,0,bflen); /读取14字节BMP文件头 int bilen=40; byte bi=new bytebilen; fs.read(bi,0,bilen); /读取40字节BMP信息头 / 获取一些重要数据 int nwidth=(int)bi

    25、7&0xff)24) /源图宽度 | (int)bi6&0xff)16) | (int)bi5&0xff)8) | (int)bi4&0xff; System.out.println(宽:+nwidth); int nheight=(int)bi11&0xff)24) /源图高度 | (int)bi10&0xff)16) | (int)bi9&0xff)8) | (int)bi8&0xff; System.out.println(高:+nheight); /位数 int nbitcount=(int)bi15&0xff)8) | (int)bi14&0xff; System.out.print

    26、ln(位数:+nbitcount); /源图大小 int nsizeimage=(int)bi23&0xff)24) | (int)bi22&0xff)16) | (int)bi21&0xff)8) | (int)bi20&0xff; System.out.println(源图大小:+nsizeimage); /对24位BMP进行解析 if(nbitcount=24) int npad=(nsizeimage/nheight)-nwidth*3; int ndata=new intnheight*nwidth; byte brgb=new byte(nwidth+npad)*3*nheight

    27、; fs.read (brgb,0,(nwidth+npad)*3*nheight); int nindex=0; for(int j=0;jnheight;j+) for(int i=0;inwidth;i+) ndata nwidth*(nheight-j-1)+i= (255&0xff)24 | (int)brgbnindex+2&0xff)16) | (int)brgbnindex+1&0xff)8) | (int)brgbnindex&0xff; nindex+=3; nindex+=npad; Toolkit kit=Toolkit.getDefaultToolkit(); ima

    28、ge=kit.createImage(new MemoryImageSource(nwidth,nheight, ndata,0,nwidth); result=从BMP得到图像image; System.out.println(从BMP得到图像image); else result=不是24位BMP,失败!; System.out.println(不是24位BMP,失败!); image=(Image)null; fs.close(); /关闭输入流 /从Panel存储图像 void jMenuSave_actionPerformed(ActionEvent e) Image image;

    29、/构造一个目标图 int wideth=image.getWidth(null); /得到源图宽 int height=image.getHeight(null); /得到源图长 File outFile = new File(theDir,(theFile+.bmp); BufferedImage tag=new BufferedImage(wideth,height,BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(image,0,0,wideth,height,null); /绘制图 BufferedImage tag=new jTabbedPane1.createImage(wideth,height); Graphics2D g2=image.createGraphics(); jTabbedPane1.print(g2); BufferedOutputStream bos = new BufferedOutputStream( new FileOu


    注意事项

    本文(图像处理作业.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开