當前位置:首頁 » 操作系統 » haar源碼

haar源碼

發布時間: 2022-09-19 05:32:18

① 彩色圖像分割源碼

能不能給我發一份呀?

② 人臉識別程序代碼問題求教

就這么些代碼,看不出來

③ 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

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:335
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:943
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371