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

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

?? snp.java

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

import java.lang.Math;

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

import java.awt.image.*;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.Rectangle;

import com.sun.image.codec.jpeg.JPEGCodec;                  
import com.sun.image.codec.jpeg.JPEGImageEncoder;

/******************************************************************************
 *SNP(基于統計的背景消除算法):	該算法的主要功能是對室內環境條件下的人的陰影檢*																		  	
 *測和背景消除,實現將運動前景,運動對象陰影,靜態背景三者的分離. 				  * 	
 *版本號:1.0																  *	
 *作者:happyjay(段俊杰)													      *	
 *程序接口:a.保存圖像接口;b.分布曲線接口;c.二值圖(原圖)接口;d.去陰影接口;e.圖 *
 *像膨脹接口																  *
 *本程序主接口為SNPProcess(),主要用來進行SNP算法處理         		          *	
 ******************************************************************************/
public class SNP
{
	/*輸入學習圖片數*/
	static int sampleImageNum = 0;

	/*是否保存圖像*/
	boolean saved = false;
	
	/*是否需要畫出分布圖*/
	boolean paintpic = false;
	
	/*是否需要二值顯示*/
	boolean binaryvalue = false;
	
	/*是否需要去陰影*/
	boolean subshadow = false;
	
	/*是否需要膨脹處理*/
	boolean wantpengzhang = false;
	
	/*計算每幀光線強度總和*/
	boolean totalalpha = false;
	
	/*計算Y分量*/
	boolean gety = false;
	
	/*是否使用滑桿*/
	boolean useslider = false;
	
	/*閾值設置*/
	float slidervalue = 3.0f;
	float slidervalue2 = -3.0f;
	
	/*輸入圖象寬度,高度,面積域 */
    int w=0;			
	int h=0;			
	int w_h=0;	
	
	/*輸入源圖象*/
	Image src = null;
	
	/*抓取圖像參數*/
	PixelGrabber grabber = null;
	ColorModel model = null;
	
	/*存取圖像象素數組*/
	int pixels[];
	
	boolean boolpixel[];
		
	/*r,g,b值存放數組,存放圖象RGB值*/
	float r[];
    float g[];
    float b[];
    
    /*為求Y分量,將RGB存儲在同一個數組*/
    int []rgb;
    	    
    /*r,g,b期望值存放數組*/
    float ur[];							
    float ug[];							
    float ub[];	
    
    /*各幀r,g,b方差值存放數組*/	
    float sr[];							
    float sg[];							
    float sb[];
    
    /*二值化數組,用于二值化處理*/
    boolean binary[];
    boolean binarytemp[];
    
    /*亮度失真*/
    float ma[];
    
    /*象素點亮度偏移量數組α[]*/				
    float α[];							
    
    /*規格化亮度偏移量和色度偏移量存放數組*/						
    float α_[];
    
    /*暫存數組(提高計算效率)*/
    float A[];
    float B[];
    float C[];
    float D[];
    
    /*各個象素點的期望值的方差和*/
    float tempr[];
    float tempg[];
    float tempb[];
    
    /*光線強度總和*/
    float tempalpha;
    
	/*存儲上次光線強度和*/
	float lastalpha;
	
	/*當前幀與上一幀的光線強度差異*/
	float deltaalpha;
	
    /*各個象素點的亮度失真和色度失真的方差和*/
    float tempx[];
    float tempy[];	
    
    /*α和cd的最大最小值*/
    float max_α_;																	
    float min_α_;								
    
    /*α和CD的分布曲線數組*/								
	int a_map[];							
		
	/*坐標系中原點值(即縱坐標最大值時橫坐標的值)*/
	float Max_map;
	int originX;
	
	/*最大最小規格化值出現的點的位置*/
	int max_location = 0;
	int min_location = 0;
	

   /****************************************************/
   /*設置檢測區域*/
   public void setDetectArea(Rectangle rec)
   {
   		int startX = (int)rec.getX();
   		int startY = (int)rec.getY();
   		int endX = startX + (int)rec.getWidth();
   		int endY = startY + (int)rec.getHeight();
   		
   		if(startX < 0) startX = 0;
   		if(startY < 0) startY = 0;
   		if(endX > w) endX = w;
   		if(endY > h) endY = h;
   		
   		for(int y = startY; y < endY; y++)
   			for(int x = startX; x < endX; x++)
   			{
   				boolpixel[y * w + x] = true;
   			}
   }
   
   /*默認區域*/
   public void setDefaultArea()
   {
   		for(int y = 0; y < h; y++)
   			for(int x = 0; x < w; x++)
   			{
   				boolpixel[y * w + x] = true;
   			}
   }
   /*設置閾值*/
   public void setSlidervalue(float slidervalue)
   {
   		this.slidervalue = slidervalue;
   }
   
   /*獲取閾值*/
   public float getSlidervalue()
   {
   		return this.slidervalue;
   }
   
    /*設置陰影閾值*/
   public void setSlidervalue2(float slidervalue2)
   {
   		this.slidervalue2 = slidervalue2;
   }
   
   /*獲取陰影閾值*/
   public float getSlidervalue2()
   {
   		return this.slidervalue2;
   }
   
   /*設置是否要計算totalalpha的值*/
    public void setTotalalpha(boolean totalalpha)
    {
    	this.totalalpha = totalalpha;
    }
    
    /*得到當前輸出的值*/
    public float getTempalpha()
    {
    	return this.tempalpha;
    }
    
   /*設置是否需要二值輸出,默認為原圖輸出*/
    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;
    }
    
    /*設置是否計算Y分量*/
    public void setY(boolean gety)
    {
    	this.gety = gety;
    }
    
    public void setUseSlider(boolean useslider)
    {
    	this.useslider = useslider;
    }
    
    public boolean getUseSlider()
    {
    	return this.useslider;
    }
    /***************************************************/
    /**
	 *以下構造函數,初始化數據
	 **/
	public SNP(BufferedImage inImage) throws Exception
	{
		/*輸入初始圖像,進行寬度和高度初始化*/
		src = inImage;
		w = src.getWidth(null);
		h = src.getHeight(null);
		w_h = w * h;

		boolpixel = new boolean[w_h];
		
		/*r,g,b值存放數組,存放圖象RGB值*/
		r = new float[w_h];
	    g = new float[w_h];
	    b = new float[w_h];
	    
	    /*申請3個浮點空間存放每個象素點的RGB值*/	
	    rgb = new int[3];
	        
	    /*r,g,b期望值存放數組*/
	    ur = new float[w_h];							
	    ug = new float[w_h];							
	    ub = new float[w_h];	
	    
	    /*各幀r,g,b方差值存放數組*/	
	    sr = new float[w_h];							
	    sg = new float[w_h];							
	    sb = new float[w_h];
	    
	    /*二值化數組初始化*/
	    binary = new boolean[w_h];
	    binarytemp = new boolean[w_h];
	    
	    /*記錄期望值方差和初始化*/
	    tempr = new float[w_h];
	    tempg = new float[w_h];
	    tempb = new float[w_h];
	    
	    /*記錄亮度失真和色度失真的和*/
	    tempx = new float[w_h];
    	tempy = new float[w_h]; 
    	
	    
	    /*亮度失真和色度失真*/
	    ma = new float[w_h];
	    
	    /*象素點亮度偏移量數組α[]和色度偏移量數組cd[]*/				
	    α = new float[w_h];							
	    
	    /*初始化預先存儲數組*/
	    A = new float[w_h];
	    B = new float[w_h];
	    C = new float[w_h];
	    D = new float[w_h];
	    
	    /*規格化亮度偏移量和色度偏移量存放數組*/						
	    α_ = new float[w_h];							
	    	    
	    /*初始化圖形參數*/
	    a_map = new int[10000];
	    
	    /*初始化坐標原點值*/
	    Max_map = 0.0f;
		originX = 0;
	}
	
	/***************************************************/
	/**
	 *SNP處理函數,參數為輸入處理圖像
	 **/
	public BufferedImage SNPProcess(BufferedImage inImage) 
									throws Exception					 
	{
		
		RGBToYUV rgbtoyuv = new RGBToYUV();
		
		/*輸入模板圖片數增加1*/
		sampleImageNum++;
       
        /*初始化每幀光線強度的和*/
        tempalpha = 0;
        
        System.out.println(sampleImageNum + "SNPProcess");
        long t0 = System.currentTimeMillis();
        
        /*輸入視頻圖像*/
        src = inImage;
		w = src.getWidth(null);
		h = src.getHeight(null);
		w_h = w * h;
		
		/*存取圖像象素數組*/
		int pixels[] = new int[w_h];
		
		/**
	     *以下讀入模版圖片,將圖像的所有象素存入pixels數組 
	     **/  
	    grabber = new PixelGrabber(src, 0, 0, w, h, pixels, 0, w);
	    try
		  {
		      grabber.grabPixels();
		  }catch(InterruptedException e)
	     {
	     	e.printStackTrace();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频免费看| 精品久久国产字幕高潮| 中文字幕永久在线不卡| 国产精品一区一区三区| 欧美成人vps| 秋霞电影一区二区| 欧美日韩在线精品一区二区三区激情 | 婷婷丁香久久五月婷婷| 一本一本久久a久久精品综合麻豆| 国产女人18水真多18精品一级做 | 麻豆视频观看网址久久| 欧美精品九九99久久| 亚洲国产毛片aaaaa无费看| 色悠悠久久综合| 亚洲欧美精品午睡沙发| 一本一本大道香蕉久在线精品 | 中文在线资源观看网站视频免费不卡 | 欧日韩精品视频| 亚洲精品免费看| 欧美自拍偷拍一区| 亚洲成av人片| 91精品国产综合久久久久| 日韩国产欧美在线播放| 91精品国产91久久久久久一区二区| 日韩电影一二三区| 日韩三级视频在线观看| 久久狠狠亚洲综合| 久久免费电影网| 国产不卡高清在线观看视频| 久久蜜桃一区二区| 成人免费视频网站在线观看| |精品福利一区二区三区| 97se亚洲国产综合在线| 亚洲裸体在线观看| 欧美日韩三级在线| 日韩国产精品91| 久久蜜桃av一区精品变态类天堂| 成人午夜私人影院| 亚洲卡通动漫在线| 欧美电影一区二区| 激情小说欧美图片| 国产精品色一区二区三区| eeuss鲁片一区二区三区在线观看| 亚洲精品免费视频| 欧美精品国产精品| 国产制服丝袜一区| 国产精品久久久久久久裸模| 欧美优质美女网站| 久久激五月天综合精品| 国产精品美女久久福利网站| 91久久精品网| 久久国产尿小便嘘嘘尿| 国产精品色呦呦| 欧美精品久久99| 国产乱人伦精品一区二区在线观看| 一色屋精品亚洲香蕉网站| 欧美在线三级电影| 激情小说亚洲一区| 亚洲激情av在线| 欧美成人vps| 色狠狠av一区二区三区| 六月丁香综合在线视频| 国产精品国产三级国产aⅴ中文| 欧美日韩一区久久| 国产精品88av| 亚洲动漫第一页| 国产日韩欧美精品一区| 欧美在线观看视频一区二区三区| 国内外成人在线| 亚洲一二三四久久| 国产午夜精品美女毛片视频| 欧美日韩一级二级| 国产成人免费视| 天天综合色天天综合色h| 中文字幕免费在线观看视频一区| 欧美群妇大交群的观看方式| 成人免费视频免费观看| 午夜精品一区二区三区免费视频| 欧美国产精品专区| 8x8x8国产精品| 99久久久精品免费观看国产蜜| 美脚の诱脚舐め脚责91 | 日韩一区二区三区视频在线 | 欧美中文字幕亚洲一区二区va在线 | 中文字幕精品三区| 在线观看91av| 一本色道久久加勒比精品| 国产在线精品一区二区夜色| 亚洲成人www| 国产精品国产三级国产普通话三级 | 91性感美女视频| 黄页视频在线91| 性欧美疯狂xxxxbbbb| 最新不卡av在线| 久久久另类综合| 欧美一区二区久久久| 91一区一区三区| 懂色av中文字幕一区二区三区 | 丁香婷婷深情五月亚洲| 日韩精品亚洲专区| 亚洲激情自拍视频| 国产精品乱码一区二三区小蝌蚪| 精品三级在线观看| 宅男噜噜噜66一区二区66| 91精品福利在线| 99久久久久久99| 成人av动漫在线| 国产乱人伦偷精品视频免下载| 久久精品国产亚洲高清剧情介绍 | 伊人色综合久久天天| 国产精品伦理在线| 国产天堂亚洲国产碰碰| 欧美v国产在线一区二区三区| 欧美精品三级在线观看| 在线一区二区三区做爰视频网站| 99久久久精品| av亚洲精华国产精华精华| 国产成人一级电影| 国产一区二区h| 久久99国产精品麻豆| 青椒成人免费视频| 日韩精品亚洲一区二区三区免费| 午夜精品爽啪视频| 亚洲成人一区在线| 午夜一区二区三区视频| 亚洲一区二区三区四区不卡| 一区二区视频在线看| 亚洲欧美日韩一区二区三区在线观看| 欧美国产精品中文字幕| 国产精品久线观看视频| 中文字幕av不卡| 中文字幕中文字幕一区二区| 中文子幕无线码一区tr| 国产精品久久久久久福利一牛影视| 欧美国产精品一区| 国产精品理论在线观看| 国产精品色哟哟| 亚洲私人影院在线观看| 一区二区三区国产豹纹内裤在线| 亚洲精品乱码久久久久久| 一区二区三区高清在线| 亚洲一区在线播放| 天天综合日日夜夜精品| 日韩av一区二区三区四区| 奇米777欧美一区二区| 久久99精品国产.久久久久| 国产精品一二三四五| 丰满少妇久久久久久久| 91视频国产观看| 欧美三片在线视频观看| 3atv一区二区三区| 欧美精品一区二区精品网| 久久精品在线免费观看| 国产精品进线69影院| 亚洲一区二区偷拍精品| 日本最新不卡在线| 韩国欧美国产1区| 99久久免费国产| 欧美人妖巨大在线| 久久色在线观看| 中文字幕在线观看一区二区| 一区二区欧美在线观看| 日本伊人色综合网| 国产一区激情在线| 99国产精品国产精品久久| 欧美综合色免费| 精品免费日韩av| 国产精品麻豆久久久| 亚洲成a人片综合在线| 久久精品国产精品亚洲精品| 成人午夜又粗又硬又大| 欧美日韩一区二区三区四区| 精品国产99国产精品| 国产精品久久久久久久久快鸭| 亚洲自拍偷拍综合| 九九精品一区二区| 99re热这里只有精品视频| 欧美人xxxx| 中文字幕第一页久久| 亚洲专区一二三| 黄色精品一二区| 色呦呦网站一区| 日韩精品一区二区三区四区视频| 国产精品久线观看视频| 日韩二区三区四区| 成人激情免费网站| 欧美日本不卡视频| 国产精品三级av在线播放| 亚洲成人1区2区| 成人激情小说网站| 日韩一区二区三区三四区视频在线观看 | 欧美日本精品一区二区三区| 久久精品视频一区二区三区| 亚洲一区二区三区影院| 国产在线观看一区二区| 欧美丝袜第三区| 日本一区二区在线不卡| 五月天亚洲精品| 97久久人人超碰| 精品国产凹凸成av人网站|