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

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

?? hough.java

?? hough 變換 JAVA 代碼實現 可探測 文檔圖象中的直線
?? JAVA
字號:
package houghTransform;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;

import javax.imageio.ImageIO;
import javax.swing.JFileChooser;

/**
 * @author Zolotaya
 */
public class Hough {

	int[][] accu;
	static int maxRho;

	/**	Constructeur */
	public Hough() {
		// TODO Auto-generated constructor stub
		JFileChooser choix = new JFileChooser();
		if (choix.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
			String filename = choix.getSelectedFile().getAbsolutePath();
			try {
				BufferedImage bi = loadImage(filename);
				Applyhough(bi);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	/** Fonction d'application de la transform閑 de Hough */
	public void Applyhough(BufferedImage bi){
		int compt = 0;
		int maxRho = (int)(Math.sqrt( (bi.getWidth()*bi.getWidth()) + (bi.getHeight()*bi.getHeight()) ) + 0.5);
		Hough.maxRho = maxRho;
		// cr閍tion du "conteneur" de donn閑s
		accu = new int [360][2*maxRho];
		for (int i = 0; i < accu.length ; i++){
			for (int j = 0 ; j < accu[i].length ; j++){
				accu[i][j] = 0;
			}
		}
		// cr閍tion d'une image avec en bleu les pixels luent, en rouge les droites trouv閑 (cf plus loin)
		BufferedImage dst = new BufferedImage(bi.getWidth(), bi.getHeight(), BufferedImage.TYPE_INT_ARGB);
		// On parcour toute l'image 
		for (int x = 0 ; x < bi.getWidth() ; x++) {
			for (int y = 0 ; y < bi.getHeight() ; y++){
				// Si le pixel n'appartient pas au fond (n'est pas noir)
				int rgb = bi.getRGB(x, y);
				rgb = rgb & 0xFF;
				if (rgb > 0){
					for (int angle = 0 ; angle < 360 ; angle ++){
						double theta = Math.toRadians(angle);
						double rho = x*Math.cos(theta) + y*Math.sin(theta);
						int indexAngle = (int) (angle);
						int indexRho = (int)(rho+maxRho + 0.5); 
						accu[indexAngle][indexRho]++;
					}
					dst.setRGB(x, y, rgb);
					compt++;
				}
			}
		}
		
		try {
			SaveImage(dst, new FileOutputStream("PixelRead.png"));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		int[] droite = maxi();
		
		try {
			dst = tracerDroite(droite, dst);
			SaveImage(dst, new FileOutputStream("droite.png"));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**  Fonction de recherche des maximums */
	public int[] maxi(){
		int maxi = 0;
		int[] droite = new int[3];
		// On parcours tout l'accumulateur pour trouver le maximum
		for (int i = 0 ; i < accu.length ; i++){
			for (int j = 0 ; j < accu[i].length ; j++){
				if ( maxi < accu[i][j]){
					maxi = accu[i][j];
					droite[0] = i; // angle
					droite[1] = j; // distance
					droite[2] = maxi; // peut servir pour la recherche des maximas suivant
				}
			}
		}
		return droite;
	}
	
	/** Fonction de tracage des droites + calcul de leur 閝uation */
	private static BufferedImage tracerDroite(int[] droite, BufferedImage src){

		int angle = droite[0];
		int rho = droite[1] - maxRho;
		
		// droite de la forme ax +by + c = 0 --> 
		// si b != 0 y = (-ax + c)/b
		// sinon droite verticale 
		double a = Math.cos(Math.toRadians(angle));
		double b = Math.sin(Math.toRadians(angle));
		double c = rho;
		
		// On fixe 2 nombre :
		int x0 = -src.getWidth();
		int x1 = src.getWidth();
		
		double y0 , y1; 
		// On calcul les deux droites : 
		// SI la droite n'est pas verticale
		if (b != 0){
			y0 = (-a*x0 + c)/b;
			y1 = (-a*x1 + c)/b;
			// On affiche l'閝uation de la droite
			System.out.println("droite : y = "+a+"*x + "+b );
			// On trace les droites trouv閑s
			Graphics g = src.getGraphics();
			g.setColor(Color.red);
		    g.drawLine(x0, (int)(y0 + 0.5), x1, (int)(y1 + 0.5));
		} else {
			x0 = rho;
			y0 = 0;
			x1 = rho;
			y1 = src.getHeight();
			// On affiche l'閝uation de la droite
			System.out.println("droite : y = "+a+"*x + "+b );
			// On trace les droites trouv閑s
			Graphics g = src.getGraphics();
			g.setColor(Color.red);
		    g.drawLine(x0, (int)(y0 + 0.5), x1, (int)(y1 + 0.5));
		}
	    // On retourne l'image source
		return src;
	}
	
	/** Fonction de sauvegarde d'image */
	public static void SaveImage(BufferedImage imBW, OutputStream os) throws Exception {
		Graphics g = imBW.createGraphics();
		g.drawImage(imBW, 0, 0, null);
		g.dispose();
		ImageIO.write(imBW, "png", os);
		os.close();
		imBW = null;
		os = null;
	}

	// Fonction d'ouverture des images (.jpeg / .gif / .png)
	public BufferedImage loadImage(String f) throws Exception {
		Image im2 = null;
		java.awt.MediaTracker mt2 = null;

		java.io.FileInputStream in = null;
		byte[] b = null;
		int size = 0;

		in = new java.io.FileInputStream(f);
		if (in != null) {
			size = in.available();
			b = new byte[size];
			in.read(b);
			im2 = java.awt.Toolkit.getDefaultToolkit().createImage(b);
			in.close();
		}

		mt2 = new java.awt.MediaTracker(new Canvas());
		if (im2 != null) {
			if (mt2 != null) {
				mt2.addImage(im2, 0);
				mt2.waitForID(0);
			}
		}
		BufferedImage input = new BufferedImage(im2.getWidth(null), im2
				.getHeight(null), BufferedImage.TYPE_INT_ARGB);
		Graphics g = input.createGraphics();
		g.setColor(Color.white);
		g.fillRect(0, 0, im2.getWidth(null), im2.getHeight(null));
		g.drawImage(im2, 0, 0, null);
		g.dispose();
		g = null;
		return input;
	}

	/** Point d'entr閑 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Hough();
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区久久| 欧美另类z0zxhd电影| 欧美日韩日本视频| 久久久国产一区二区三区四区小说| 国产精品免费av| 久久99精品一区二区三区三区| 色综合久久久网| 日本一区二区三区国色天香| 免费一级欧美片在线观看| 色噜噜狠狠成人网p站| 国产亚洲一二三区| 蜜臀av一区二区| 欧美福利视频一区| 一二三四社区欧美黄| 成人91在线观看| 国产欧美一区二区精品性色超碰| 蓝色福利精品导航| 日韩一卡二卡三卡四卡| 亚欧色一区w666天堂| 色视频成人在线观看免| 亚洲日本欧美天堂| 成人午夜视频在线观看| 久久久久久久网| 国产一区视频网站| 久久色中文字幕| 国产一区二区三区免费观看| 精品精品国产高清一毛片一天堂| 日本不卡一二三| 欧美精品黑人性xxxx| 午夜不卡av免费| 欧美日韩二区三区| 日韩高清不卡一区| 日韩网站在线看片你懂的| 美女网站色91| 精品国产乱码久久久久久1区2区| 裸体一区二区三区| 久久免费午夜影院| www.亚洲色图| 亚洲精品一二三| 欧美日韩色综合| 捆绑调教一区二区三区| 精品91自产拍在线观看一区| 韩日av一区二区| 国产亲近乱来精品视频| 99精品久久久久久| 亚洲一区二区精品视频| 7777精品伊人久久久大香线蕉| 日韩黄色免费电影| 精品国产成人系列| 波多野结衣91| 亚洲一区二区三区四区五区中文| 91.com视频| 粉嫩欧美一区二区三区高清影视| 亚洲精品久久久蜜桃| 欧美三级中文字| 国产一区二区三区蝌蚪| 亚洲啪啪综合av一区二区三区| 欧美吞精做爰啪啪高潮| 久久精品国产一区二区| 国产精品美女视频| 欧美麻豆精品久久久久久| 国内精品国产成人| 亚洲日本在线a| 精品人伦一区二区色婷婷| 99久久婷婷国产精品综合| 日本少妇一区二区| 欧美经典三级视频一区二区三区| 欧美午夜影院一区| 国产毛片精品视频| 亚洲国产精品尤物yw在线观看| 精品成人佐山爱一区二区| 91麻豆免费看| 极品少妇一区二区三区精品视频 | 成年人午夜久久久| 首页国产欧美久久| 国产精品色噜噜| 欧美一级电影网站| 色一情一乱一乱一91av| 国产精品资源在线| 人人狠狠综合久久亚洲| 中文字幕一区二区5566日韩| 欧美久久久一区| 色综合中文综合网| 亚洲欧洲色图综合| 精品日韩在线观看| 欧美探花视频资源| 99久久免费国产| 国产毛片精品国产一区二区三区| 日韩av网站在线观看| 一区二区三区日韩精品视频| 国产日产亚洲精品系列| 欧美美女一区二区| 色婷婷狠狠综合| www.欧美日韩国产在线| 国产中文字幕精品| 精品一区二区久久久| 肉丝袜脚交视频一区二区| 一区二区激情小说| 亚洲男女一区二区三区| 国产精品久久久久久久久免费桃花 | 久久中文字幕电影| 欧美xxx久久| 日韩女优毛片在线| 欧美成人女星排行榜| 欧美一区二视频| 91精品国产手机| 911国产精品| 欧美一个色资源| 日韩欧美高清一区| 精品国精品国产| 久久综合五月天婷婷伊人| 日韩精品一区二区三区三区免费| 91精品国产色综合久久ai换脸| 欧美日韩三级一区| 日韩一区二区影院| 日韩女优视频免费观看| 2020国产成人综合网| 亚洲精品一区二区三区香蕉| 久久婷婷国产综合国色天香| 久久久精品影视| 欧美国产日韩亚洲一区| 中文字幕一区二区三区四区不卡 | 久久久不卡影院| 欧美国产综合一区二区| 国产精品女人毛片| 亚洲色图欧洲色图| 午夜精品爽啪视频| 免费成人av资源网| 国产精品伊人色| www.66久久| 欧美亚洲一区三区| 日韩欧美在线综合网| 国产亚洲精品超碰| 亚洲欧美日韩久久精品| 日韩制服丝袜先锋影音| 激情久久五月天| 97精品国产露脸对白| 精品视频免费看| 久久久精品一品道一区| 国产精品初高中害羞小美女文| 一区二区高清免费观看影视大全| 性做久久久久久免费观看欧美| 国产在线看一区| 91免费版pro下载短视频| 欧美伦理影视网| 欧美激情一区二区三区四区| 一区二区三区鲁丝不卡| 韩国中文字幕2020精品| 色婷婷国产精品久久包臀| 欧美不卡一区二区三区四区| 国产精品久久久久国产精品日日| 亚洲国产精品影院| 成人性色生活片免费看爆迷你毛片| 欧美图区在线视频| 国产精品网站在线播放| 午夜国产精品影院在线观看| 成人美女视频在线观看| 欧美一级一级性生活免费录像| 国产精品视频观看| 美女视频一区在线观看| 色综合天天综合网天天看片| 日韩一区二区精品葵司在线| 亚洲美女偷拍久久| 国产精品一区专区| 6080yy午夜一二三区久久| ...av二区三区久久精品| 精品一区二区精品| 欧美精品在线一区二区三区| 国产精品拍天天在线| 蜜臀av国产精品久久久久| 欧美综合亚洲图片综合区| 中文子幕无线码一区tr| 国产一区欧美日韩| 日韩亚洲欧美高清| 亚洲国产成人va在线观看天堂| 9人人澡人人爽人人精品| 久久男人中文字幕资源站| 麻豆精品视频在线| 欧美老肥妇做.爰bbww| 亚洲欧美日韩国产综合在线| 国产黄色成人av| 久久综合九色综合久久久精品综合 | 亚洲视频资源在线| 成人免费观看av| 国产精品天天看| 国产精品夜夜爽| 久久天天做天天爱综合色| 捆绑调教美女网站视频一区| 91精品国产免费久久综合| 日日夜夜精品视频天天综合网| 日本韩国一区二区三区视频| 自拍av一区二区三区| 国产91清纯白嫩初高中在线观看 | 五月天网站亚洲| 欧美日韩精品一区二区| 亚洲成人动漫在线观看| 欧美色中文字幕| 亚洲成人av一区二区三区| 91黄色免费版| 丝袜诱惑亚洲看片|