亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? snpframe.java

?? SNP算法: 基于背景縮減和陰影檢測的統計方法,適用于室內檢測.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package bin;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Graphics;
import java.awt.image.*;
import java.awt.event.*;
import java.awt.*;

import java.net.*;

import java.util.Date;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;

import java.io.IOException;
import java.io.File;
import java.io.FileOutputStream;


public class SNPFrame extends JFrame implements ActionListener{
	public static Color DarkColor = new Color(55, 77, 118); //暗色
    public static Color LightColor = new Color(111, 146, 212); //亮色
    Border emptyBorder = BorderFactory.createEmptyBorder(); //未選中時的邊框
	Image icon;
	
	/*主界面容器*/	
	Container cp = this.getContentPane();
	
	/*幫助面板*/
    JPanel helpPanel = new JPanel();
    
    ImageIcon imgSetup, imgHelp, imgAbout;
    
    /*about按鈕*/ 
  	JButton aboutButton = new JButton(); //關于
  	
    /*set按鈕*/
    JButton setupButton = new JButton(); //設置
    
    /*help按鈕*/
    JButton helpButton = new JButton(); //幫助
    
    HelpDialog helpDialog; //幫助對話框
  	AboutDialog aboutDialog; //關于對話框
  	
  
    /*按鈕面板*/
    JPanel actionPanel = new JPanel();
    
    /*視頻/攝像頭*/
    CheckboxGroup cbg = new CheckboxGroup();
	Checkbox selectCb = new Checkbox("選擇視頻", cbg, true);
	Checkbox vedioCb = new Checkbox("攝像頭連接", cbg, false);
	
	JButton useSliderButton = new JButton("使用滑桿條調整參數");//使用滑桿
	JButton startButton=new JButton("SNP處理");//開始按鈕
    JButton selectButton = new JButton("選擇視頻");//選擇視頻
    JButton saveButton = new JButton("保存圖像");//保存處理結果
    JButton binaryButton = new JButton("二值化圖");//二值化處理
    JButton pengzhangButton = new JButton("二值膨脹");//二值化膨脹處理
    JButton totalalphaButton = new JButton("光強度和");//光線強度和
    JButton addButton =new JButton("檢測區域");//增加檢測區域
    JButton delButton =new JButton("刪除區域");//刪除檢測區域
    
    /*滑桿條*/
    JSlider jSlider = new JSlider(0, 10);
 	JTextField jtf = new JTextField("      前景閾值:3.0f     ");
 	JSlider jSlider2 = new JSlider();
 	JTextField jtf2 = new JTextField("     陰影閾值: -3.0f   ");
 	
    /*視頻面板*/
    JPanel contentPanel = new JPanel();
    
    /*原始視頻面板*/
    JPanel orientpanel = new JPanel();
    
    /*SNP處理結果視頻面板*/
    JPanel resultpanel = new JPanel();
    
    /*狀態面板*/
    JPanel statusPanel = new JPanel(); //狀態欄
    
	Date date = new Date();
	String now = (date.getYear() + 1900) + "年" + (date.getMonth() + 1) + "月" + date.getDate() + "日";    
    public  JTextField statusField = new JTextField(
      "歡迎使用SNP算法演示系統 作者:段俊杰 版本:V1.0\t\t\t\t\t    今天是:" + now);
 	
 	public JLabel tiplabel = new JLabel("起始幀:");
 	public JTextField startframe = new JTextField(3);
 	public JLabel endlabel = new JLabel("幀");
 	
 	public JLabel skiplabel = new JLabel("跳幀:");
 	public JTextField skipnum = new JTextField(3);
 	
 	/*提示當前處理對象*/
 	JLabel tipslabel = new JLabel("            現在對視頻圖像進行SNP處理");
    Font font = new Font("楷體", Font.BOLD, 30);
        
    /*布爾數值*/
    
    boolean start = false;//是否開始
    boolean saved = false;//是否保存
   
	boolean binaryvalue = false;//是否二值處理
	boolean wantpengzhang = false;//是否膨脹
	 

	boolean totalalpha = false;//光線強度
	
	boolean gety = true;//是否獲取Y分量
	
	/*檢測區域矩形參數*/
	boolean canchange = true;//矩形是否可變
	
	boolean useslider = false;//是否使用滑桿
	
	int startX, startY, endX, endY;//矩形四個頂點
	
	/*視頻文件路徑*/
	String path="";
	
	int startframenum = 1;
	int skipframenum = 1;
	
	Dimension faceSize = new Dimension(870, 450);
	
    /*初始常量值*/
    static int totalpic = 1;
    float slidervalue = 3.0f;
	float slidervalue2 = -3.0f;
	
	RecLabel recLabel=new RecLabel();  
    
    public SNPFrame() {
    	initResource();
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            startframe.setText("1");
            skipnum.setText("1");
            snpInit();
             Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    		this.setLocation( (int) (screenSize.width - faceSize.getWidth()) / 2,
                     (int) (screenSize.height - faceSize.getHeight()) / 2);
    		this.setResizable(false);
    		this.setTitle("SNP算法演示"); //設置標題
    		this.setIconImage(icon); //設置程序圖標
    
            URLClassLoader urlLoader = (URLClassLoader)this.getClass().getClassLoader();
		    URL url = urlLoader.findResource("images/cursor.gif");
		    Image animateImage = new ImageIcon(url).getImage();
		    Cursor cursor = Toolkit.getDefaultToolkit().createCustomCursor(
		        animateImage, new Point(0, 0), "cursor");
		    this.setCursor(cursor);
    
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        
    	
			
    }
	
	public void initResource() {
	    
	
	    //程序圖標
	    icon = getImage("images/snp.gif");
	

	    imgHelp = new ImageIcon(getImage("images/help.gif"));
	    imgAbout = new ImageIcon(getImage("images/about.gif"));
	
	
	    //初始化對話框
	    helpDialog = new HelpDialog((JFrame)this); //幫助對話框
	    aboutDialog = new AboutDialog((JFrame)this); //關于對話框
    }
  
	  Image getImage(String filename) {
		    URLClassLoader urlLoader = (URLClassLoader)this.getClass().
		        getClassLoader();
		    URL url = null;
		    Image image = null;
		    url = urlLoader.findResource(filename);
		    image = Toolkit.getDefaultToolkit().getImage(url);
		    MediaTracker mediatracker = new MediaTracker(this);
		    try {
		      mediatracker.addImage(image, 0);
		      mediatracker.waitForID(0);
		    }
		    catch (InterruptedException _ex) {
		      image = null;
		    }
		    if (mediatracker.isErrorID(0)) {
		      image = null;
		    }
		
		    return image;
	  }
  
	/*設置是否要計算totalalpha的值*/
    public void setTotalalpha(boolean totalalpha)
    {
    	this.totalalpha = totalalpha;
    }
    
	public void setBinaryvalue(boolean binaryvalue)
    {
    	this.binaryvalue = binaryvalue;
    }
    
    public boolean getBinaryvalue()
    {
    	return this.binaryvalue;
    }
    
     public void setPengzhang(boolean wantpengzhang)
    {
    	this.wantpengzhang = wantpengzhang;
    }
    
    /*獲得膨脹狀態*/
    public boolean getPengzhang()
    {
    	return this.wantpengzhang;
    }
    
	 public void setSaved(boolean saved)
    {
   	   this.saved = saved;
    } 
    
    public boolean getSaved()
    {
    	return this.saved;
    }
    
 /*   public void setPic(boolean paintpic)
    {
    	this.paintpic = paintpic;
    }
    public boolean getPic()
    {
    	return this.paintpic;
    }*/
    
    public void setStart(boolean start){
    	this.start=start;
    }
    public boolean getStart(){
    	return start;
    }

    public void setRecIcon(BufferedImage inImage){
    	recLabel.setIcon(new ImageIcon(inImage));
    }
    public String getPath(){
    	return "file:"+path;
    }
    public void setPath(String path){
    	this.path=path;
    }
    private void snpInit() throws Exception {
        setSize(870, 450);
        
        /*界面整體布局*/
        Border border = BorderFactory.createBevelBorder(BevelBorder.LOWERED,
        new Color(45, 92, 162),
        new Color(43, 66, 97),
        new Color(45, 92, 162),
        new Color(84, 123, 200));
        
        BorderLayout borderLayout = new BorderLayout();
        
        tipslabel.setForeground(LightColor);
    	tipslabel.setBounds(new Rectangle(600, 30 , 150, 30));
    	tipslabel.setFont(font);
    	
    	
		/*幫助面板初始化*/
		helpPanel.setBackground(DarkColor);
		helpPanel.setPreferredSize(new Dimension(780, 50));
		helpPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
		
		/*按鈕面板*/
		actionPanel.setBackground(LightColor);
	    actionPanel.setBorder(border);
	    actionPanel.setPreferredSize(new Dimension(200, 380));
	    actionPanel.setMinimumSize(new Dimension(200, 380));
    
        /*視頻面板初始化*/
        JLabel themelabel = new JLabel("SNP算法結果演示");
        themelabel.setForeground(Color.white);
        themelabel.setBounds(new Rectangle(285, 10 , 150, 30));
        
        JLabel orientlabel = new JLabel("原始視頻");
        orientlabel.setForeground(Color.YELLOW);
        orientlabel.setBounds(new Rectangle(120, 300 , 100, 30));
        
        JLabel snpresultlabel = new JLabel("SNP處理后視頻");
        snpresultlabel.setForeground(Color.YELLOW);
        snpresultlabel.setBounds(new Rectangle(430, 300 , 100, 30));
        
        contentPanel.setBackground(DarkColor);
	    contentPanel.setBorder(border);
	    contentPanel.setPreferredSize(new Dimension(620, 380));
	    contentPanel.setMinimumSize(new Dimension(620, 380));
  		
  		/*狀態面板初始化*/
  		statusPanel.setBackground(DarkColor);
	    statusPanel.setBorder(border);
	    statusPanel.setPreferredSize(new Dimension(620, 24));
	    statusPanel.setMinimumSize(new Dimension(620, 24));
	    statusPanel.setLayout(new BorderLayout());
  		
  		cp.setLayout(borderLayout);
	    cp.add(helpPanel, BorderLayout.NORTH);
	    cp.add(actionPanel, BorderLayout.EAST);
	    cp.add(contentPanel, BorderLayout.CENTER);
	    cp.add(statusPanel, BorderLayout.SOUTH);
    
  		/*視頻面板初始化*/
  		contentPanel.setLayout(null);
  		orientpanel.setLayout(null);
        resultpanel.setLayout(null);

        orientpanel.setBounds(new Rectangle(10, 50, 320, 240));
  		resultpanel.setBounds(new Rectangle(340,50 , 320, 240));
  		
  		recLabel.setBounds(new Rectangle(0,0,320,240));
		recLabel.setOpaque(true);
		resultpanel.add(recLabel);
		
		contentPanel.add(themelabel);
		contentPanel.add(orientpanel);
  		contentPanel.add(resultpanel);
  		contentPanel.add(orientlabel);
  		contentPanel.add(snpresultlabel);
  		
  		/*按鈕面板初始化*/
  		selectCb.setBounds(new Rectangle(0, 0, 87, 31));
        vedioCb.setBounds(new Rectangle(0, 0, 87, 31));
  		actionPanel.add(selectCb);
  		actionPanel.add(vedioCb);
  		
  		actionPanel.add(jSlider);
  		actionPanel.add(jtf);
  		actionPanel.add(jSlider2);
  		actionPanel.add(jtf2);
  		jSlider.setMaximum(1000);
        jSlider.setValue(300);
        jSlider2.setMaximum(700);
        jSlider2.setValue(300);
        jtf.setEnabled(false);
        jtf2.setEnabled(false);
  		
  		actionPanel.add(useSliderButton);
  		actionPanel.add(tiplabel);
  		actionPanel.add(startframe);
  		actionPanel.add(endlabel);
  		
  		actionPanel.add(skiplabel);
  		actionPanel.add(skipnum);
  	//	actionPanel.add(endlabel);
  		
  		actionPanel.add(selectButton);
  		actionPanel.add(startButton);
  		actionPanel.add(saveButton);
  		actionPanel.add(totalalphaButton);
  		actionPanel.add(binaryButton);
  		actionPanel.add(pengzhangButton);
  		actionPanel.add(addButton);
  		actionPanel.add(delButton);
  		
  		addButton.addActionListener(new ActionListener(){
		 	public void actionPerformed(ActionEvent e){
				recLabel.addAction();
			}
		});
		
		delButton.addActionListener(new ActionListener(){
		 	public void actionPerformed(ActionEvent e){
				recLabel.removeAction();
			}
		});
		
		//加入狀態欄
	
	    statusPanel.add(statusField, BorderLayout.CENTER);
	    statusField.setEditable(false);
	    statusField.setForeground(Color.white);
	    statusField.setBackground(DarkColor);
	    
	    helpPanel.add(aboutButton);
	    aboutButton.setBorder(emptyBorder);
	    aboutButton.setIcon(imgAbout);
    	aboutButton.addActionListener(this);
    	
    	helpPanel.add(helpButton);
    	helpButton.setBorder(emptyBorder);
    	helpButton.setIcon(imgHelp);
    	helpButton.addActionListener(this);
    	
    	helpPanel.add(tipslabel, FlowLayout.RIGHT);
  	
    }
    
  
	public void actionPerformed(ActionEvent e) {
	    Object obj = e.getSource();
	    if (obj == aboutButton) { //關于
	      aboutDialog.show();
	    }
	    else if (obj == helpButton) { //幫助
	      //new Help();
	      helpDialog.show();
	    }
	  }
	    
     //進度條響應類
    static class SliderListener implements ChangeListener { 
    	SNPFrame frame;
    	public SliderListener(SNPFrame frame){ 
 	        this.frame=frame;
 		} 
    	public void stateChanged(ChangeEvent e) { 
    		JSlider s1 = (JSlider)e.getSource(); 
    		frame.slidervalue = (float)s1.getValue()/100;
    		frame.jtf.setText("前景閾值: "  + frame.slidervalue );
 	    	
    	}
    }
    
     //進度條響應類
    static class SliderListener2 implements ChangeListener { 
    	SNPFrame frame;
    	public SliderListener2(SNPFrame frame){ 
 	        this.frame=frame;
 		} 
    	public void stateChanged(ChangeEvent e) { 
    		JSlider s1 = (JSlider)e.getSource(); 
    		frame.slidervalue2 = -((float)s1.getValue()/100);
    		
    		frame.jtf2.setText("陰影閾值: " + frame.slidervalue2 );
 	    	
    	}
    }
    
    /**/
    static class SliderButtonListener implements ActionListener
    {
    	SNPFrame frame;
    	public SliderButtonListener(SNPFrame frame){ 
 	        this.frame=frame;
 		} 
 		
 		public void actionPerformed(ActionEvent e){
 			JButton btn = (JButton)e.getSource();
 			if(btn.isEnabled())
 			{
 				if(btn.getText().equals("使用滑桿條調整參數"))
 				{
 					frame.useslider = true;
 					frame.jSlider.setEnabled(true);
     				frame.jSlider2.setEnabled(true);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产污网站| 久久99精品国产.久久久久| 不卡高清视频专区| 国产午夜精品一区二区| 国产福利不卡视频| 中文字幕一区二区三区四区不卡| 成年人网站91| 亚洲欧美视频在线观看视频| 色婷婷亚洲综合| 亚洲风情在线资源站| 欧美视频一区在线观看| 欧美aa在线视频| 国产亚洲福利社区一区| 99久久精品久久久久久清纯| 有码一区二区三区| 欧美一区二区三区视频| 国产精品18久久久久久久久| 中文字幕色av一区二区三区| 日本乱人伦一区| 日本不卡中文字幕| 国产精品丝袜在线| 欧美吻胸吃奶大尺度电影| 日本vs亚洲vs韩国一区三区二区 | 欧美色综合网站| 日韩主播视频在线| 国产午夜亚洲精品午夜鲁丝片| 99视频在线观看一区三区| 亚洲国产一区二区三区青草影视| 日韩免费观看高清完整版在线观看| 国产伦精品一区二区三区免费迷 | 日韩亚洲欧美综合| 不卡一区二区三区四区| 婷婷综合五月天| 欧美国产综合色视频| 欧美三级中文字幕| 国产a精品视频| 亚洲成人午夜电影| 中文字幕免费一区| 91超碰这里只有精品国产| 国产精品 欧美精品| 亚洲成人中文在线| 中文字幕佐山爱一区二区免费| 91精品国产色综合久久不卡电影| 成人av网站免费观看| 日本成人中文字幕| 亚洲综合一区二区精品导航| 久久免费看少妇高潮| 欧美日韩一二区| 97国产一区二区| 国产一区二区三区四| 天天色 色综合| 日韩毛片一二三区| 国产无人区一区二区三区| 欧美高清视频不卡网| www.日韩在线| 国产一区二区三区日韩| 午夜精品久久久久| 亚洲乱码国产乱码精品精的特点 | 91久久免费观看| 国产精品白丝jk黑袜喷水| 图片区小说区国产精品视频| 日韩毛片精品高清免费| 国产精品私人影院| 久久久精品2019中文字幕之3| 欧美日高清视频| 日本精品一区二区三区四区的功能| 国产精品99久久久久| 久久国产精品99久久久久久老狼 | 亚洲欧美偷拍另类a∨色屁股| 久久久亚洲午夜电影| 精品日韩欧美一区二区| 7777女厕盗摄久久久| 欧美精品在线观看播放| 在线观看三级视频欧美| 91老师国产黑色丝袜在线| eeuss影院一区二区三区 | 一本大道久久a久久精品综合| 国产精品 欧美精品| 国产精品一卡二卡在线观看| 韩国精品久久久| 国产精品影音先锋| 国产成人激情av| 成人av在线电影| 色av一区二区| 欧美综合天天夜夜久久| 欧美伊人精品成人久久综合97| 91福利视频网站| 欧美色手机在线观看| 7777精品伊人久久久大香线蕉超级流畅| 一本大道久久a久久综合| 欧美优质美女网站| 精品视频免费在线| 制服丝袜亚洲色图| 日韩小视频在线观看专区| 精品少妇一区二区三区日产乱码| 欧美成人精品3d动漫h| 久久综合成人精品亚洲另类欧美| 精品国产一区二区三区忘忧草 | aa级大片欧美| 在线一区二区观看| 91精品国产综合久久婷婷香蕉 | av一二三不卡影片| 在线观看91视频| 日韩一区二区免费在线电影| 2023国产精品视频| 中文字幕一区二区日韩精品绯色| 亚洲欧美另类久久久精品2019| 亚洲一区免费观看| 日韩国产欧美视频| 国产精品亚洲а∨天堂免在线| 91影院在线免费观看| 欧美日韩精品高清| 久久毛片高清国产| 亚洲精品高清在线观看| 麻豆中文一区二区| 国产91在线看| 欧美日韩综合色| 久久精品亚洲国产奇米99| 亚洲精品v日韩精品| 男男成人高潮片免费网站| 国产99久久久久久免费看农村| 色噜噜久久综合| 精品国产乱码久久久久久浪潮| 中文字幕一区在线观看视频| 日韩av不卡在线观看| 丁香网亚洲国际| 91麻豆精品国产91久久久使用方法 | 欧美曰成人黄网| 久久久久九九视频| 午夜欧美视频在线观看| 成人午夜电影久久影院| 欧美日韩一二三| ㊣最新国产の精品bt伙计久久| 日本三级亚洲精品| 91丝袜呻吟高潮美腿白嫩在线观看| 91精品婷婷国产综合久久性色 | 亚洲五码中文字幕| 国产精品18久久久| 在线播放国产精品二区一二区四区| 欧美极品美女视频| 秋霞午夜av一区二区三区| 91在线无精精品入口| 久久久久久日产精品| 蜜臀av性久久久久蜜臀aⅴ| 日本电影亚洲天堂一区| 国产精品视频你懂的| 久久精品国产免费看久久精品| 91精品1区2区| 国产精品美女久久久久久久网站| 麻豆国产欧美一区二区三区| 欧美丝袜丝nylons| 亚洲激情在线激情| 成人av影视在线观看| 26uuu精品一区二区在线观看| 天天av天天翘天天综合网| 99久久国产综合精品麻豆| 国产欧美日本一区二区三区| 麻豆一区二区在线| 3d成人h动漫网站入口| 一区二区成人在线| 色婷婷激情综合| 中文字幕一区av| 成人精品小蝌蚪| 国产亚洲一区二区三区| 九九精品一区二区| 日韩精品一区二区三区视频| 五月天丁香久久| 7777女厕盗摄久久久| 视频在线观看一区| 欧美日韩精品系列| 日韩电影免费在线看| 91精品国产乱码久久蜜臀| 天堂一区二区在线免费观看| 91精品国产日韩91久久久久久| 秋霞午夜鲁丝一区二区老狼| 欧美大黄免费观看| 精品亚洲porn| 日本一二三四高清不卡| 国产1区2区3区精品美女| 亚洲国产精品精华液2区45| voyeur盗摄精品| 亚洲蜜臀av乱码久久精品| 欧美性淫爽ww久久久久无| 天天av天天翘天天综合网| 日韩手机在线导航| 国内精品久久久久影院色| 日本一区二区三区视频视频| 不卡一区二区在线| 亚洲五月六月丁香激情| 欧美不卡激情三级在线观看| 国产一区二区三区av电影| 国产精品久久久久久户外露出| 99国内精品久久| 亚洲成a人在线观看| 欧美一区二区三区视频在线观看| 国产精品亚洲一区二区三区在线| 国产精品不卡在线观看| 欧美系列亚洲系列| 精品亚洲免费视频| 亚洲欧洲日本在线|