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

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

?? reclabel.java

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

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

public class RecLabel extends JLabel{
/**
 * Data fields
 */
 private int sflag,pflag,dflag,aflag,rflag;/*flag bits*/
 private Rectangle activeRec;/*the only active rectangle*/
 private LinkedList recList;/*the list holds all the rectangles*/
 private int oldX,oldY;/*used for move action*/
 boolean canchange=true;
 private final int minlen=75;
 private final int thewid=50;//minlen>thewid
 int cou=0;
 Color []color={Color.red,Color.green,Color.blue,Color.cyan,Color.yellow,Color.pink,Color.white,Color.black};
 /**
  * Constructors
  */
  public RecLabel(){
  	
  	addMouseActions();/*registering the mouse events listener*/
  	recList=new LinkedList();/*new the rectangle list*/
  	activeRec=new Rectangle(new Point(100,100),new Dimension(1,1));
  	/*new the actvie rectangle*/
  		
  }
  public void setChange(boolean canchange){
  	this.canchange=canchange;
  }
  public Color getColor(int i){
  	return color[i%8];
  }
 /**
  * Mouse action listeners
  */
  private void addMouseActions(){
  	
   	addMouseListener(new MouseAdapter(){
        /*mouse pressed event listener*/ 		
  		public void mousePressed(MouseEvent e){
  			if(!canchange)
  				return;
  			int ex=e.getX(),ey=e.getY();
  			/*aflag==1:add a new rectangle action*/
  			if(aflag==1){
  				aflag=0;sflag=3;pflag=4;
  				activeRec.setLocation(ex-minlen,ey-thewid);
  				activeRec.setSize(minlen,thewid);
  				//must not intersects with any rectangle existed
  				if(isIntersect(activeRec)){
  					sflag=0;pflag=0;
  					return;
  				}
  				repaint();
  				return;			
  			}
  			
            if(sflag==0){
            	//the current point is inside one rectangle existed
            	if(isInside(ex,ey)){
            		/*rflag==1:remove a rectangle*/
            		if(rflag==1){
            			rflag=0;
            			sflag=0;
            		}
            		repaint();		
            		return;
            	}
            	//the selected point is a vertext of one rectangle
                if(isOnPoint(ex,ey)){
                	repaint();	
                	return;
                }
                //select a line of one rectangle
                if(isOnLine(ex,ey)){
                	repaint(); 	
                	return;
                }
                return;	
            }			
  			
  		}
  		/*mouse relessed event listener*/
  		public void mouseReleased(MouseEvent e){
  			if(!canchange)
  				return;
  			int ex=e.getX(),ey=e.getY();
  			if(sflag==0)return;
  			sflag=0;
  			//put the active rectangle back into the list 
  			recList.addFirst(new Rectangle(activeRec));
  			repaint();		
  		}
  		
  	});	
  	
  	addMouseMotionListener(new MouseMotionAdapter(){
  	    /*mouse dragged event listener*/
  		public void mouseDragged(MouseEvent e){
  			if(!canchange)
  				return;
  			int ex=e.getX(),ey=e.getY();
  			if(sflag==0)return;
  			Rectangle tempRec=new Rectangle(activeRec);
  			int rx=(int)activeRec.getX(),ry=(int)activeRec.getY(),
  			    rw=(int)activeRec.getWidth(),rh=(int)activeRec.getHeight();
  			//move the whole rectangle 
  			if(sflag==2){
  			   	tempRec.setLocation(rx+ex-oldX,ry+ey-oldY);
  			   	//stopped when intersects with others
  			   	if(isIntersect(tempRec)){			   
  			   		sflag=0;
  			   		recList.addFirst(new Rectangle(activeRec));
  			   		repaint();
  			   		return;
  			   	}
  			   	activeRec.setBounds(tempRec);
  			   	repaint();
  			   	oldX=ex;oldY=ey;
  			   	return;
  			}
  			//move one point
  			if(sflag==3){
  				switch(pflag){
  				case 1:
  					tempRec.setLocation(ex,ey);
  					tempRec.setSize(rw+rx-ex,rh+ry-ey);
  					break;
  				case 2:
  					tempRec.setLocation(rx,ey);
  					tempRec.setSize(ex-rx,rh+ry-ey);
  					break;
  				case 3:
  					tempRec.setLocation(ex,ry);
  					tempRec.setSize(rw+rx-ex,ey-ry);
  					break;
  				case 4:
  					tempRec.setLocation(rx,ry);
  					tempRec.setSize(ex-rx,ey-ry);
  					break;
  				default:break;
  				}
  				if(isIntersect(tempRec)){
  					sflag=0;
  					recList.addFirst(new Rectangle(activeRec));
  					repaint();
  					return;
  				}
  				activeRec.setBounds(tempRec);
  				repaint();
  				return;
  			}
  		
  			//move a line
  			if(sflag==4){
  				switch(dflag){
  				case 1:
  					if(rw+rx-ex>minlen&&rw!=thewid){  					
  						tempRec.setLocation(ex,ry);
  						tempRec.setSize(rw+rx-ex,rh);
  					}
  					break;
  				case 2:
  					if(ex-rx>minlen&&rw!=thewid){  					
  						tempRec.setLocation(rx,ry);
  						tempRec.setSize(ex-rx,rh);
  					}
  					break;
  				case 3:
  					if(rh+ry-ey>minlen&&rh!=thewid){  					
  						tempRec.setLocation(rx,ey);
  						tempRec.setSize(rw,rh+ry-ey);
  					}
  					break;
  				case 4:
  					if(ey-ry>minlen&&rh!=thewid){
  						tempRec.setLocation(rx,ry);
  						tempRec.setSize(rw,ey-ry);
  					}
  					break;
  				default:break;
  				}
  				if(isIntersect(tempRec)){
  					sflag=0;
  					recList.addFirst(new Rectangle(activeRec));
  					repaint();
  					return;
  				}
  				activeRec.setBounds(tempRec);
  				repaint();
  				return;
  			}
  		}
  	
  	});
  	
  }
 /**
  * Action process
  */ 
  public void addAction(){
  	aflag=1;
  	sflag=0;	
  }
  public void removeAction(){
  	rflag=1;
  	sflag=0;
  }
  public void changeAction(){
  	Rectangle tempRec;
  	Iterator IT=recList.iterator();
  	if(IT.hasNext()){
  		tempRec=(Rectangle)IT.next();
  		int rh=(int)tempRec.getWidth();
  		int rw=(int)tempRec.getHeight();
  		tempRec.setSize(rw,rh);
  		IT.remove();
  		recList.addFirst(new Rectangle(tempRec));
  		repaint();
  	}
  	return;
  }
 /**
  * Judge the mouse point
  */
  public boolean isInside(int x,int y){
  	Rectangle tempRec;
  	Rectangle tempRec2;
  	Iterator IT=recList.iterator();
  	while(IT.hasNext()){
  		tempRec=(Rectangle)IT.next();
  		tempRec2=new Rectangle((int)tempRec.getX()+2,(int)tempRec.getY()+2,
  		(int)tempRec.getWidth()-4,(int)tempRec.getHeight()-4);
  		if(tempRec2.contains(x,y)){
  			sflag=2;
  			activeRec.setBounds(tempRec);
  			IT.remove();
  			oldX=x;
  			oldY=y;
  			return true;
  		}
  	}
  	return false;
  }
  public boolean isOnPoint(int x,int y){
  	Rectangle tempRec;
  	Rectangle tempRec2;
    int rx,ry,rw,rh;
  	Iterator IT=recList.iterator();
  	while(IT.hasNext()){
  		tempRec=(Rectangle)IT.next();
  		rx=(int)tempRec.getX();
  		ry=(int)tempRec.getY();
  		rw=(int)tempRec.getWidth();
  		rh=(int)tempRec.getHeight();
  		
  		tempRec2=new Rectangle(rx-2,ry-2,4,4);
  		if(tempRec2.contains(x,y)){
  			sflag=3;
  			pflag=1;
  			activeRec.setBounds(tempRec);
  			IT.remove();
  			return true;
  		}
  		
  		tempRec2=new Rectangle(rx+rw-2,ry-2,4,4);
  		if(tempRec2.contains(x,y)){
  			sflag=3;
  			pflag=2;
  			activeRec.setBounds(tempRec);
  			IT.remove();
  			return true;
  		}
  		
  		tempRec2=new Rectangle(rx-2,ry-2+rh,4,4);
  		if(tempRec2.contains(x,y)){
  			sflag=3;
  			pflag=3;
  			activeRec.setBounds(tempRec);
  			IT.remove();
  			return true;
  		}
  		
  		tempRec2=new Rectangle(rx-2+rw,ry-2+rh,4,4);
  		if(tempRec2.contains(x,y)){
  			sflag=3;
  			pflag=4;
  			activeRec.setBounds(tempRec);
  			IT.remove();
  			return true;
  		}
  		
  	}
  	return false;
  }
  public boolean isOnLine(int x,int y){
  	Rectangle tempRec;
  	Rectangle tempRec2;
    int rx,ry,rw,rh;
    
  	Iterator IT=recList.iterator();
  	while(IT.hasNext()){
  		tempRec=(Rectangle)IT.next();
  		rx=(int)tempRec.getX();
  		ry=(int)tempRec.getY();
  		rw=(int)tempRec.getWidth();
  		rh=(int)tempRec.getHeight();
  		
  		tempRec2=new Rectangle(rx-2,ry-2,4,rh+4);
  		if(tempRec2.contains(x,y)){
  			sflag=4;
  			dflag=1;
  			activeRec.setBounds(tempRec);
  			IT.remove();
  			return true;
  		}
  		
  		tempRec2=new Rectangle(rx-2+rw,ry-2,4,rh+4);
  		if(tempRec2.contains(x,y)){
  			sflag=4;
  			dflag=2;
  			activeRec.setBounds(tempRec);
  			IT.remove();
  			return true;
  		}
  		
  		tempRec2=new Rectangle(rx-2,ry-2,rw+4,4);
  		if(tempRec2.contains(x,y)){
  			sflag=4;
  			dflag=3;
  			activeRec.setBounds(tempRec);
  			IT.remove();
  			return true;
  		}
  		
  		tempRec2=new Rectangle(rx-2,ry-2+rh,rw+4,4);
  		if(tempRec2.contains(x,y)){
  			sflag=4;
  			dflag=4;
  			activeRec.setBounds(tempRec);
  			IT.remove();
  			return true;
  		}
  		
  	}
  	return false;
  }
  public boolean isIntersect(Rectangle r){
  	Iterator IT=recList.iterator();
  	while(IT.hasNext()){
  		if(r.intersects((Rectangle)IT.next())){
  			return true;
  		}
  	}
  	return false;
  }
 /**
  * Paint component method
  */
  public void paintComponent(Graphics g){
 	super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    Iterator IT=recList.iterator();
    g2.setStroke(new BasicStroke(2));
    cou=0;
    g2.setPaint(Color.red);
    if(sflag!=0){
    	g2.draw(activeRec);
    }
    while(IT.hasNext()){
    	g2.setPaint(color[cou%8]);
    	cou++;
    	g2.draw((Rectangle)IT.next());	
    }
  }
  
   /**
    * Get one rectangle
    */
    public Rectangle getRecAt(int i){
   	 return (Rectangle)recList.get(i);
    }
   /**
    * Get the size of rectangle list
    */
    public int getListSize(){
    	return recList.size();
    }
   /**
    * Get all of the rectangles
    */
    public LinkedList getList(){
    	return recList;
    } 
  
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区电影| 天天免费综合色| 国产成人在线看| 国产亚洲一本大道中文在线| 韩国av一区二区三区| 欧美国产一区在线| 99精品视频在线播放观看| 亚洲免费看黄网站| 欧美日韩高清一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产精品青草久久| 99国产精品99久久久久久| 亚洲一区二区三区四区的| 91精品国产综合久久久久久漫画 | 免费一区二区视频| 久久久久国产精品免费免费搜索| 国产高清亚洲一区| 成人免费小视频| 欧美日韩国产首页在线观看| 麻豆精品一二三| 国产精品久久久久久久久晋中| 91色porny| 亚洲123区在线观看| 精品少妇一区二区三区| 99视频精品全部免费在线| 亚洲妇熟xx妇色黄| 精品成人一区二区三区| 色哟哟一区二区| 六月婷婷色综合| 亚洲三级免费观看| 欧美成人在线直播| 91福利视频久久久久| 国产一区二区三区免费看| 亚洲欧美偷拍三级| 久久精品视频在线免费观看| 在线观看视频一区| 丁香激情综合国产| 日本午夜精品视频在线观看| 国产精品乱子久久久久| 欧美一区在线视频| 日本久久精品电影| 成人黄色电影在线| 黄色精品一二区| 亚洲va韩国va欧美va| 国产精品美女一区二区在线观看| 欧美日韩国产美| 色哟哟在线观看一区二区三区| 国模一区二区三区白浆| 午夜视频在线观看一区二区| 国产精品理论在线观看| 精品国产伦一区二区三区免费| 在线亚洲人成电影网站色www| 精品在线播放午夜| 午夜精品久久久久| 夜夜爽夜夜爽精品视频| 国产精品麻豆欧美日韩ww| 久久综合久久综合九色| 欧美精品一卡二卡| 欧洲人成人精品| 99vv1com这只有精品| 风流少妇一区二区| 国产成a人亚洲精品| 国产资源在线一区| 美洲天堂一区二卡三卡四卡视频| 亚洲电影在线播放| 亚洲成人福利片| 一区二区在线免费观看| 亚洲人成在线播放网站岛国| 欧美极品少妇xxxxⅹ高跟鞋| 久久在线观看免费| 精品国产不卡一区二区三区| 欧美大片一区二区三区| 欧美一级在线免费| 精品久久免费看| 久久久国产精品麻豆| 精品久久五月天| 国产人成亚洲第一网站在线播放| 精品国产亚洲在线| 国产亚洲欧美日韩俺去了| 精品sm在线观看| 国产亚洲欧美一级| 国产精品久久久久久久久免费丝袜 | 欧美日韩精品一区二区三区四区| 91美女在线观看| 色综合亚洲欧洲| 欧美中文字幕一区二区三区亚洲| 91麻豆精品视频| 欧美天堂亚洲电影院在线播放 | 欧美日韩国产首页在线观看| 欧美日本视频在线| 日韩一卡二卡三卡| 国产视频一区二区在线观看| 国产精品麻豆欧美日韩ww| 亚洲欧美aⅴ...| 日韩精品免费专区| 国产综合久久久久久鬼色| 高清av一区二区| 欧美日韩一区 二区 三区 久久精品 | 国产精品美女一区二区三区| 亚洲免费在线观看视频| 亚洲妇女屁股眼交7| 男人的天堂亚洲一区| 国产黄色成人av| 在线观看视频一区| 久久综合久久鬼色中文字| 中文字幕日韩精品一区| 亚洲成人自拍网| 久久不见久久见免费视频1| 国产精品羞羞答答xxdd| 色婷婷狠狠综合| 日韩精品一区二区在线| 国产精品久久久久国产精品日日| 亚洲综合免费观看高清在线观看| 青椒成人免费视频| 成人性生交大合| 9191久久久久久久久久久| 精品对白一区国产伦| 亚洲视频一二三| 国产一区 二区| 欧美亚洲精品一区| 国产视频一区在线播放| 婷婷一区二区三区| zzijzzij亚洲日本少妇熟睡| 在线91免费看| 亚洲欧美色图小说| 国产一区二区三区免费| 欧美色图天堂网| 欧美经典一区二区| 日本sm残虐另类| 在线一区二区三区四区五区| 久久精品夜色噜噜亚洲aⅴ| 亚洲成人777| 91精品办公室少妇高潮对白| 久久久蜜臀国产一区二区| 亚洲国产欧美另类丝袜| 波多野结衣一区二区三区| 欧美va日韩va| 日韩国产一区二| 欧美在线制服丝袜| 综合av第一页| 成人性生交大合| 久久久精品天堂| 色综合天天天天做夜夜夜夜做| 日韩免费视频一区二区| 婷婷综合另类小说色区| 色素色在线综合| 亚洲欧洲美洲综合色网| 国产尤物一区二区在线 | 日韩一区二区三区观看| 亚洲精品国产a| 本田岬高潮一区二区三区| 国产亚洲综合在线| 精品一区二区在线播放| 欧美一区二区三区影视| 午夜精品久久久久影视| 在线观看日韩一区| 亚洲精品日产精品乱码不卡| 波波电影院一区二区三区| 日本一区二区动态图| 成人午夜精品在线| 欧美国产激情一区二区三区蜜月| 免费xxxx性欧美18vr| 欧美一区二区在线播放| 日韩二区三区四区| 欧美情侣在线播放| 日韩中文字幕一区二区三区| 欧美日韩中文国产| 日韩av在线免费观看不卡| 欧美久久高跟鞋激| 久久国产生活片100| 精品国产伦一区二区三区观看方式| 蜜臀av一区二区| 精品欧美一区二区三区精品久久| 裸体健美xxxx欧美裸体表演| 91麻豆精品91久久久久久清纯 | 亚洲人成小说网站色在线| 91免费在线视频观看| 亚洲精品午夜久久久| 在线观看日韩毛片| 免费一级片91| 久久久99久久精品欧美| 成人avav影音| 亚洲综合视频在线观看| 欧美日韩国产免费一区二区| 另类中文字幕网| 欧美—级在线免费片| 在线国产电影不卡| 麻豆一区二区在线| 国产欧美一区二区精品性色| 成人综合在线观看| 亚洲在线观看免费| 欧美一区二区三区四区久久| 国产中文字幕一区| 自拍偷拍亚洲激情| 在线不卡一区二区| 国产一区二区导航在线播放| 中文字幕一区在线| 欧美精品在线视频| 国产精品一级二级三级| 一卡二卡欧美日韩|