91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-28
  • 語言: Java
  • 標簽: 高斯??

資源簡介

Java 圖像高斯濾波處理程序.圖像的高斯濾波程序Java實現

資源截圖

代碼片段和文件信息

/*
?*?Edge.java
?*
?*?Created?on?2007年12月10日?下午8:42
?*
?*/

package?edu.zjut.edgedetection;

import?java.awt.*;
import?java.awt.image.*;
import?java.awt.color.ColorSpace;

/**
?*?邊緣檢測


?*?實現了Canny邊緣檢測算法,提供靜態函數?canny
?*?@author?余樂偉
?*/
public?class?Edge
{
????/**
?????*?Canny邊緣檢測


?????*?函數?Canny?采用?CANNY?算法發現輸入圖像的邊緣而且在輸出圖像中標識這些邊緣。
?????*?threshold1和threshold2?當中的小閾值用來控制邊緣連接,大的閾值用來控制強邊緣的初始分割。


?????*?Canny邊緣檢測算法步驟:

?????*?step1:用高斯濾波器平滑圖象;

?????*?step2:計算梯度的幅值和方向;?

?????*?step3:對梯度幅值進行非極大值抑制;?

?????*?step4:用雙閾值算法檢測和連接邊緣?

?????*?@param?sourceImage?輸入圖像
?????*?@param?lowThreshold?第一個閾值(低)
?????*?@param?highThreshold?第二個閾值(高)
?????*?@return?用?Canny?邊緣檢測算法得到的邊緣圖
?????*/
????public?static?BufferedImage?canny(BufferedImage?sourceImage?int?lowThreshold?int?highThreshold)
????{
????????height?=?sourceImage.getHeight();
????????width?=?sourceImage.getWidth();
????????int?picsize?=?width?*?height;
????????
????????//先把圖片轉換為灰度圖
????????ColorSpace?grayCS?=?ColorSpace.getInstance(ColorSpace.CS_GRAY);
????????ColorConvertOp?colorConvertOp?=?new?ColorConvertOp(grayCSnull);
????????sourceImage=colorConvertOp.filter(sourceImage?null);???????
????????
????????//sourceImage?=?ColorConvert.grayImage(sourceImage);
????????
????????//對原圖高斯濾波
????????sourceImage?=?gaussianSmooth(sourceImage);
????????
????????//梯度幅值表
????????int?[]?gradeMagnitude?=?new?int[picsize];
????????//梯度方向表
????????int?[]?gradeOrientation?=?new?int[picsize];
????????
????????//計算方向導數和梯度的幅度
????????grade(sourceImage?gradeMagnitude?gradeOrientation);
????????
????????//應用非最大抑制細化
????????int?[]?edgeImage=?NonmMaxSuppress(gradeMagnitude?gradeOrientation);
????????
????????//邊界提取與輪廓跟蹤
????????return?thresholdingTracker(edgeImage?gradeMagnitude?lowThreshold?highThreshold);????????
????}
????
????/**
?????*?用高斯濾波器平滑原圖像
?????*?@param?sourceImage?輸入圖像
?????*?@return?高斯濾波后的圖像
?????*/
????private?static?BufferedImage?gaussianSmooth(BufferedImage?sourceImage)
????{
????????//高斯模板
????????float[]?elements?=
????????{1.0f/16.0f?2.0f/16.0f?1.0f/16.0f
?????????2.0f/16.0f?4.0f/16.0f?2.0f/16.0f
?????????1.0f/16.0f?2.0f/16.0f?1.0f/16.0f};
????????
????????BufferedImage?bi?=?new?BufferedImage(sourceImage.getWidth()?sourceImage.getHeight()?BufferedImage.TYPE_INT_RGB);
????????Graphics2D?big?=?bi.createGraphics();
????????big.drawImage(sourceImage?0?0?null);
????????//創建一個Kernel
????????Kernel?kernel?=?new?Kernel(3?3?elements);
????????ConvolveOp?blur?=?new?ConvolveOp(kernel?ConvolveOp.EDGE_NO_OPnull);
????????sourceImage?=?blur.filter(bi?null);
????????
????????return?sourceImage;
????}
????
????/**
?????*?計算方向導數和梯度的幅度
?????*?@param?grayImage?要計算的圖象
?????*?@param?gradeMagnitude?要在其中存儲結果的梯度數組
?????*?@param?gradeOrientation?要在其中存儲結果的方向導數組
?????*/
????private?static?void?grade(BufferedImage?grayImage?int?[]?gradeMagnitude?int?[]?gradeOrientation)
????{
????????int?he


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????8493??2009-07-15?15:02??CannyEdge.java

-----------?---------??----------?-----??----

?????????????????8493????????????????????1


評論

共有 條評論