| PCA構(gòu)造函數(shù)PCA類是OpenCV實現(xiàn)主要成分分析的類,在人臉識別等機器學(xué)習(xí)的項目中大量應(yīng)用,使用前需要先實例化對象。函數(shù)原型:PCA(InputArray data, InputArray mean, int flags, int maxComponents = 0);PCA(InputArray data, InputArray mean, int flags, double retainedVariance);參數(shù)說明:data:需要PCA的數(shù)據(jù),每一行(列)表示一個樣本;mean:平均值;如果矩陣是空的(noArray()),則從數(shù)據(jù)計算; flags:操作標志,具體參數(shù)如下: DATA_AS_ROW :每一行表示一個樣本; DATA_AS_COL :每一列表示一個樣本;maxComponents :PCA應(yīng)保留的最大組件數(shù);默認情況下,所有組件都保留;retainedVariance:PCA應(yīng)保留的方差百分比。使用這個參數(shù)將讓PCA決定保留多少組件,但它將始終保持至少2。 |
| PCA::project函數(shù)該函數(shù)的作用是將輸入數(shù)據(jù)vec(該數(shù)據(jù)是用來提取PCA特征的原始數(shù)據(jù))投影到PCA主成分空間中去,返回每一個樣本主成分特征組成的矩陣。因為經(jīng)過PCA處理后,原始數(shù)據(jù)的維數(shù)降低了,因此原始數(shù)據(jù)集中的每一個樣本的維數(shù)都變了,由改變后的樣本集就組成了本函數(shù)的返回值。函數(shù)原型:Mat project(InputArray vec) const;參數(shù)說明:vec:參與投影(降維)的數(shù)據(jù)PS:如果選擇DATA_AS_ROW,每一行表示一個樣本,則vec也需要按此 |
| PCA::backProject函數(shù)一般調(diào)用backProject()函數(shù)前需調(diào)用project()函數(shù),因為backProject()函數(shù)的參數(shù)vec為經(jīng)過PCA投影降維過后的矩陣。 因此backProject()函數(shù)的作用就是用vec來重構(gòu)原始數(shù)據(jù)集(關(guān)于該函數(shù)的本質(zhì)數(shù)學(xué)實現(xiàn)暫時還不是很了解)。函數(shù)原型:Mat backProject(InputArray vec) const;參數(shù)說明:vec:參與反投影(反降維)的數(shù)據(jù) |
| Mat::reshape函數(shù)該函數(shù)會為當前矩陣創(chuàng)建一個新的矩陣頭(指針),新的矩陣擁有不同的尺寸或者不同的通道數(shù),其優(yōu)點在于運算復(fù)雜度為O(1),不用復(fù)制矩陣數(shù)據(jù).正是因為不用復(fù)制數(shù)據(jù),所以在轉(zhuǎn)變過程中要保證原數(shù)據(jù)矩陣在數(shù)據(jù)上的連續(xù)性(這里的連續(xù)性是相對于原矩陣來說)函數(shù)原型:Mat reshape(int cn, int rows=0) const;參數(shù)說明:cn:新的通道數(shù);如果cn值為0表示變換前后通道數(shù)不變rows:新的行數(shù);如果rows值為0表示變換后矩陣的行數(shù)不變 |
Mat::convertTo函數(shù)這個函數(shù)提供點算子(像素變換)能力,通過增益(alpha)和偏置(beta)參數(shù)對圖像進行調(diào)整,我們也可以使用它完成亮度(beta)和對比度(alpha)的調(diào)整,其公式如下 函數(shù)原型:void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const;參數(shù)說明:m:輸出矩陣;如果在使用前沒有聲明或需要修改,會自行分配(需要贊美的能力!)。 rtype:新的矩陣類型。因此也有人使用這個函數(shù)進行類型轉(zhuǎn)換alpha:增益參數(shù),對比度beta:偏置參數(shù),亮度PS:convertTo屬于Mat的成員函數(shù)。PS2:saturate_cast用于防止溢出,結(jié)果小于0則轉(zhuǎn)為0,大于255,則轉(zhuǎn)為255。 |
| C:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s1/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s2/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s3/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s4/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s5/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s6/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s7/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s8/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s9/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s10/1.pgmC:/Mysher/OpenCV/opencv310/opencv/sources/samples/data/att_faces/s11/1.pgm |
![]() |
![]() |
新聞熱點
疑難解答