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