使用 Opencv 计算 haar 特征
Using Opencv to calculate the haar feature
我尝试使用opencv(给定图像)计算Haar特征。
输入:图像
输出:哈尔功能
为此,我正在使用OpenCV的FeatureEvaluator。
但是当我尝试计算一个特征时,我遇到了一个例外。这是我的做法:
Ptr<FeatureEvaluator> ptrHaar = FeatureEvaluator::create(FeatureEvaluator::HAAR);
Mat img = imread(image_path); // image of size 2048*1536 correctly loaded
ptrHaar->setImage(img, Size(100, 100));
ptrHaar->setWindow(Point(0, 0));
double res = ptrHaar->calcOrd(0); // get the exception here
我认为
您需要加载/创建某种类型的 Haar 功能,而不仅仅是创建一个对象。尝试使用加载方法加载一些 Haar 级联分类器,而不是尝试使用 calcOrd 方法。
你的代码几乎是正确的。唯一缺少的是阅读以前训练的级联分类器。您可以按如下方式执行此操作:
FileStorage fs( "cascade.xml", FileStorage::READ );
/2)然后,创建一个文件节点来访问这些功能:
FileNode featuresNode = fs["cascade"]["features"];
/3)创建要素赋值器,就像在第一行中所做的那样
//4)读取您创建的文件节点:
ptrHaar->read(featuresNode);
并相应地继续您的代码。
请注意,ptrHaar->calcOrd(0) 将只读取第一个特征矩形,如果你有更多要阅读的内容,你将需要一个循环,如下所示:
FileNodeIterator it = featuresNode.begin(), it_end = featuresNode.end();
int idx = 0;
for( ; it != it_end; ==it, idx++ )
{
res = ptrHaar.calcOrd(idx);
}
相关文章:
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 特征命名访问向量段
- 将特征矩阵的向量设置为0
- 特征:模板函数中矩阵的平面图
- basic_string的前导/尾部不区分空格的特征
- 特征 3 类的模板专用化
- 特征 c++:复矩阵的面积双曲正切(atanh)
- C++ 中的特征向量计算
- 根据C++标准的定义实现"is_similar"类型特征
- C++类型特征,以查看是否可以<uint32_t>对类型"K"的任何变量调用"static_cast(k)"
- 有没有办法找到特征矩阵系数的中值?
- 如何将高维数据映射到特征类型?
- 将平面阵列重塑为复杂的特征类型
- 特征 LLT 模块给出不正确的结果?
- 使用 Opencv 计算 haar 特征
- C ++或MATLAB代码来计算图像的类似HAAR的特征
- XML文件中Haar级联正面人脸检测的特征向量大小是多少
- 你使用什么类型的负面图像进行类似 Haar 的特征训练是否重要?