真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

opencv3/C++離散余弦變換DCT方式

離散余弦變換/Discrete cosine transform,

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),榮縣企業(yè)網(wǎng)站建設(shè),榮縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,榮縣網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,榮縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

根據(jù)離散傅里葉變換的性質(zhì),實偶函數(shù)的傅里葉變換只含實的余弦項,而數(shù)字圖像都是實數(shù)矩陣,因此構(gòu)造了一種實數(shù)域的變換——離散余弦變換(DCT)。

離散余弦變換具有很強的”能量集中”特性,左上方稱為低頻數(shù)據(jù),右下方稱為高頻數(shù)據(jù)。而大多數(shù)的自然信號(包括聲音和圖像)的能量都集中在離散余弦變換后的低頻部分。因此也可以在圖像壓縮算法中用來進(jìn)行有損壓縮。(如JPEG壓縮編碼)

OpenCV中dct()

在OpenCV中有專門進(jìn)行離散余弦變換的函數(shù)dct()。

dct()函數(shù)執(zhí)行1D或2D浮點數(shù)組的正向或反向離散余弦變換(DCT):

N個元素的一維向量的正余弦變換:

opencv3/C++ 離散余弦變換DCT方式

該函數(shù)通過查看輸入數(shù)組的標(biāo)志和大小來選擇操作模式:

如果(flags&DCT_INVERSE)== 0,則函數(shù)執(zhí)行向前的1D或2D變換。否則是一個逆1D或2D變換。

如果(flags&DCT_ROWS)!= 0,則函數(shù)執(zhí)行每行的一維變換。

如果數(shù)組是單列或單行,則該函數(shù)執(zhí)行一維變換。

如果以上都不是,則該函數(shù)執(zhí)行2D變換。

目前dct支持偶數(shù)大小的數(shù)組(2,4,6 …)。對于數(shù)據(jù)分析和逼近,可以在必要時填充數(shù)組。另外,函數(shù)性能對數(shù)組大小的依賴性非常大,而不是單調(diào)的。在當(dāng)前實現(xiàn)中,大小為N的矢量的DCT通過大小為N / 2的矢量的DFT來計算。因此,最佳DCT大小N1 > = N可以計算為:

size_t getOptimalDCTSize(size_t N){return 2 * getOptimalDFTSize((N + 1)/ 2); }
N1 = getOptimalDCTSize(N);

dct()參數(shù)

src 輸入浮點數(shù)組。

dst 輸出與src大小和類型相同的數(shù)組。

flags 轉(zhuǎn)換標(biāo)志

opencv示例

#include  
#include 
#include 
#include  
using namespace std; 
using namespace cv; 
int main()
{
 Mat src = imread("E:\\image\\sophie.jpg", 0); 
 if(src.empty())
 {
  cout << "the image is not exist" << endl; 
  return -1;
 }
 resize(src, src, Size(512, 512));
 src.convertTo(src, CV_32F, 1.0/255);
 Mat srcDCT; 
 dct(src, srcDCT);

 imshow("src", src);
 imshow("dct", srcDCT);
 waitKey();
 return 0;
}

可以看到因為第一幅圖像的細(xì)節(jié)較少,因此DFT變換數(shù)據(jù)主要集中在左上方(低頻區(qū)域),高頻區(qū)域大部分為0:

opencv3/C++ 離散余弦變換DCT方式

opencv3/C++ 離散余弦變換DCT方式

而第二幅圖像相對而言具有較為豐富的細(xì)節(jié),因此相對于第一幅圖像中間區(qū)域出現(xiàn)了大量的非0值:

opencv3/C++ 離散余弦變換DCT方式

opencv3/C++ 離散余弦變換DCT方式

以上這篇opencv3/C++ 離散余弦變換DCT方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。


分享名稱:opencv3/C++離散余弦變換DCT方式
當(dāng)前地址:http://weahome.cn/article/jshepp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部