haar源碼
① 彩色圖像分割源碼
能不能給我發一份呀?
② 人臉識別程序代碼問題求教
就這么些代碼,看不出來
③ OpenCV源碼中真正計算Haar特徵的那段在哪
//針對大小為winsize的圖,計算所有HaarFeature的rect,存入features返回,即獲取所有特徵坐標
CvIntHaarFeatures* icvCreateIntHaarFeatures( CvSize winsize,
int mode,
int symmetric )
//訓練樣本圖集
//創建結構CvHaarTrainigData,分配空間,並未填入sample數據
CvHaarTrainigData* icvCreateHaarTrainingData( CvSize winsize, int maxnumsamples )
//計算訓練樣本集的特徵值,調用icvGetTrainingDataCallback
//已知訓練樣本的積分圖,計算特徵值valcache、索引idxcache
void icvPrecalculate( CvHaarTrainingData* data, CvIntHaarFeatures* haarFeatures,
int numprecalculated )//numprecalculated:要計算的特徵數
//userdata:含訓練數據、haar特徵
//計算從first開始的num個特徵,結果存入mat
//若sampleIdx為null,則計算全部樣本,否則計算由sampleIdx指定的樣本
void icvGetTrainingDataCallback( CvMat* mat, CvMat* sampleIdx, CvMat*,
int first, int num, void* userdata )
//計算一個樣本(積分圖為sum和tilted)的一個HaarFeature,並返回該值
CV_INLINE float cvEvalFastHaarFeature( CvFastHaarFeature* feature,
sum_type* sum, sum_type* tilted )
//特徵的rect由坐標表示轉換為由像素索引表示
//每個haarFeature最多由3個rect組成,但都保留3個的存儲空間
void icvConvertToFastHaarFeature( CvTHaarFeature* haarFeature,
CvFastHaarFeature* fastHaarFeature,
int size, int step )
④ 求多聚焦圖像融合的MATLAB源代碼
clc;
clear all;
close all; % 清理工作空間
clear
[imA,map1] = imread('A.tif');
M1 = double(imA) / 256;
[imB,map2] = imread('B.tif');
M2 = double(imB) / 256;
zt= 4;
wtype = 'haar';
% M1 - input image A
% M2 - input image B
% wtype使用的小波類型
% Y - fused image
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% 小波變換圖像融合
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 小波變換的絕對值大的小波系數,對應著顯著的亮度變化,也就是圖像中的顯著特徵。所以,選擇絕對值大
%% 的小波系數作為我們需要的小波系數。【注意,前面取的是絕對值大小,而不是實際數值大小】
%%
%% 低頻部分系數採用二者求平均的方法
%%
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[c0,s0] = wavedec2(M1, zt, wtype);%多尺度二維小波分解
[c1,s1] = wavedec2(M2, zt, wtype);%多尺度二維小波分解
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 後面就可以進行取大進行處理。然後進行重構,得到一個圖像
%% 的小波系數,然後重構出總的圖像效果。
%% 取絕對值大的小波系數,作為融合後的小波系數
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
KK = size(c1);
Coef_Fusion = zeros(1,KK(2));
Temp = zeros(1,2);
Coef_Fusion(1:s1(1,1)) = (c0(1:s1(1,1))+c1(1:s1(1,1)))/2; %低頻系數的處理
%這兒,連高頻系數一起處理了,但是後面處理高頻系數的時候,會將結果覆蓋,所以沒有關系
%處理高頻系數
MM1 = c0(s1(1,1)+1:KK(2));
MM2 = c1(s1(1,1)+1:KK(2));
mm = (abs(MM1)) > (abs(MM2));
Y = (mm.*MM1) + ((~mm).*MM2);
Coef_Fusion(s1(1,1)+1:KK(2)) = Y;
%處理高頻系數end
%重構
Y = waverec2(Coef_Fusion,s0,wtype);
%顯示圖像
subplot(2,2,1);imshow(M1);
colormap(gray);
title('input2');
axis square
subplot(2,2,2);imshow(M2);
colormap(gray);
title('input2');
axis square
subplot(223);imshow(Y,[]);
colormap(gray);
title('融合圖像');
axis square;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
⑤ 求教opencv人臉識別中Haar特徵值的計算
我最近也再看haar-like特徵的人臉檢測源代碼。我記得源代碼有這么一行:
correction_ratio = weight_scale * (!feature->tilted ? 1 : 0.5);
其中:
weight_scale = 1./(equRect.width*equRect.height);
cascade->inv_window_area = weight_scale;
weight_scale就是面積分之一。我個人理解correction_ratio就是看你的haar-like特徵旋轉沒,
若旋轉過則:要乘以1/2。若沒有就是原面積。
然後去乘以矩形內的像素和就應該是該haar—like的特徵值了。
我也是最近正在看。不知道說對了沒,請樓主斧正啊?
⑥ 你有沒有看過opencv中haar生成級聯分類器的源碼,icvCreateCARTStageClassifier這個函數具體是什麼情況
自己去看下源碼不就可以了。
⑦ 圖像融合的matlab源代碼
一、小波入門簡介
(1)小波分析的起源、發展與應用
http://blog.csdn.net/chenyusiyuan/archive/2007/11/09/1876282.aspx
(2)感受小波
http://blog.csdn.net/chenyusiyuan/archive/2007/11/02/1864195.aspx
二、小波變換與信號分解重構專題
(1)小波變換與信號分解重構
http://blog.csdn.net/chenyusiyuan/archive/2007/11/09/1876329.aspx
(2)自己動手編寫小波信號分解與重構的Matlab程序
http://blog.csdn.net/chenyusiyuan/archive/2007/11/13/1881781.aspx
(3)用自編的程序實現小波圖像分解與重構
http://blog.csdn.net/chenyusiyuan/archive/2007/11/13/1881940.aspx
三、小波圖像融合專題
(1)小波圖像融合綜述
http://blog.csdn.net/chenyusiyuan/archive/2007/11/14/1883889.aspx
(2)小波圖像融合的Matlab實現示例
http://blog.csdn.net/chenyusiyuan/archive/2007/11/16/1888808.aspx
四、小波圖像壓縮專題
(1)基於小波變換的圖像壓縮技術初探
http://blog.csdn.net/chenyusiyuan/archive/2007/11/12/1881231.aspx
(2)零樹小波圖像壓縮專題
http://blog.csdn.net/chenyusiyuan/archive/2007/11/15/1886395.aspx
(3)嵌入式小波零樹(EZW)演算法的過程詳解和Matlab代碼
http://blog.csdn.net/chenyusiyuan/archive/2007/11/29/1907584.aspx
(4)多級樹集合分裂(SPIHT)演算法的過程詳解與Matlab實現
http://blog.csdn.net/chenyusiyuan/archive/2007/12/07/1923334.aspx
(5)討論:一種基於狀態點陣圖的SPIHT改進演算法
http://blog.csdn.net/chenyusiyuan/archive/2007/12/11/1930419.aspx
另外,附件 Wavelet.rar 給出了幾個Matlab程序,分別是:
1、基於低頻融合策略的小波圖像融合程序(Imfus.rar);
2、嵌入式零樹小波(EZW)演算法的圖像壓縮編解碼程序(EZW.rar);
3、多級樹集合分裂(SPIHT)演算法的圖像壓縮編解碼程序(SPIHT.rar);
4、一種SPIHT改進演算法(Mod-SPIHT.rar)。
其中都包含了基本的小波圖像分解與重構程序,使用的是基本的Haar小波,根據Mallat演算法編寫。
matlab的小波變換源代碼可以用來做圖像分析:
http://x.soso.com/cgi-bin/show_detail?Hash=
http://www.pudn.com/downloads76/sourcecode/windows/csharp/detail282742.html
⑧ OpenCV源碼中真正計算Haar特徵的那段在哪
#include <stdio.h>
#include <string.h>
#include "cv.h"
#include "cvaux.h"
#include "highgui.h"
using namespace cv;
//globle variables
int nTrainFaces = 0; // number of trainning images
int nEigens = 0; // number of eigenvalues
IplImage** faceImgArr = 0; // array of face images
CvMat* personNumTruthMat = 0; // array of person numbers
IplImage* pAvgTrainImg = 0; // the average image
IplImage** eigenVectArr = 0; // eigenvectors
CvMat* eigenValMat = 0; // eigenvalues
CvMat* projectedTrainFaceMat = 0; // projected training faces
//// Function prototypes
void learn();
void recognize();
void doPCA();
void storeTrainingData();
int loadTrainingData(CvMat** pTrainPersonNumMat);
int findNearestNeighbor(float* projectedTestFace);
int loadFaceImgArray(char* filename);
void printUsage();
int main( int argc, char** argv )
{
if((argc != 2) && (argc != 3)){
printUsage();
return -1;
}
if( !strcmp(argv[1], "train" )){
learn();
} else if( !strcmp(argv[1], "test") ){
recognize();
} else {
printf("Unknown command: %s\n", argv[1]);
}
return 0;
}
void printUsage(){
printf("Usage: eigenface <command>\n",
" Valid commands are\n"
" train\n"
" test\n"
);
}
void learn(){
int i;
// load training data
nTrainFaces = loadFaceImgArray("train.txt");
if( nTrainFaces < 2){
fprintf(
stderr,
"Need 2 or more training faces\n"
"Input file contains only %d\n",
nTrainFaces