java dct变换_Discrete Cosine Transform [DCT] (离散余弦变换)
Discrete Cosine Transform [DCT] (離散余弦變換)
描述:Binarizer是一個Transformer。
離散余弦變換是與傅里葉變換相關的一種變換,它類似于離散傅立葉變換但是只使用實數。離散余弦變換相當于一個長度大概是它兩倍的離散傅里葉變換,這個離散傅里葉變換是對一個實偶函數進行的(因為一個實偶函數的傅里葉變換仍然是一個實偶函數)。
參數信息
參數描述
備注
其他
setInputCol
String
DF中待變換的特征,類型為:vector
setOutputCol
String
轉換后的類型為:vector
setInverse
Boolean
true:執行反DCT,false:執行正向DCT
默認值:false
程序示例:
def getDataFrame(sparkSession: SparkSession = this.getSparkSession()): DataFrame = {
sparkSession.createDataFrame(Seq(
(0, Vectors.dense(0.0, 1.0, -2.0, 3.0)),
(1, Vectors.dense(-1.0, 2.0, 4.0, -7.0)),
(2, Vectors.dense(14.0, -2.0, -5.0, 1.0))
))
.toDF("id", "features")
}
def execute(dataFrame: DataFrame) = {
//特征名稱
var feature = "words"
var feature_new = "words_count_vectorizer"
//設置模型
val dct = new DCT()
.setInputCol("features") //待變換的特征
.setOutputCol("features_dtc") //變換后的特征名稱
.setInverse(false) //true:執行反DCT,false:執行正向DCT.默認值:false
//模型測試
var transform = dct.transform(dataFrame)
//show
transform.show(100, 100)
dataFrame.show(false)
}
數據結果:
+---+--------------------+----------------------------------------------------------------+
| id| features| features_dtc|
+---+--------------------+----------------------------------------------------------------+
| 0| [0.0,1.0,-2.0,3.0]|[1.0,-1.1480502970952693,2.0000000000000004,-2.7716385975338604]|
| 1| [-1.0,2.0,4.0,-7.0]| [-1.0,3.378492794482933,-7.000000000000001,2.9301512653149677]|
| 2|[14.0,-2.0,-5.0,1.0]| [4.0,9.304453421915744,11.000000000000002,1.5579302036357163]|
+---+--------------------+----------------------------------------------------------------+
實際應用例子:
離散余弦變換,經常被信號處理和圖像處理使用,用于對信號和圖像(包括靜止圖像和運動圖像)進行有損數據壓縮
總結
以上是生活随笔為你收集整理的java dct变换_Discrete Cosine Transform [DCT] (离散余弦变换)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux java amr转mp3_本
- 下一篇: android设置大小能用小数,Andr