【问题标题】:Normalization in Harris Corner Detector in Opencv C++?Opencv C++中Harris角检测器的归一化?
【发布时间】:2016-01-11 10:23:12
【问题描述】:

我正在阅读有关使用 Harris Corner 检测器在图像中查找角点的文档。我不明白为什么他们在应用 Harris Corner 函数后对图像进行了归一化。我对规范化的想法有点困惑。有人可以解释一下为什么我们要标准化图像吗?另外, convertscaleabs() 有什么作用。我仍然是 opencv 的初学者,所以从文档中很难理解。

cornerHarris( src_gray, dst, blockSize, apertureSize, k, BORDER_DEFAULT );

  /// Normalizing
  normalize( dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat() ); //(I couldnot understand this line)
  convertScaleAbs( dst_norm, dst_norm_scaled ); // ???

谢谢

【问题讨论】:

  • 哇哇哇哇哇哇哇

标签: c++ opencv


【解决方案1】:

我建议您在深入研究 OpenCV 之前先熟悉图像处理基础知识。对对比度、二值化、裁剪、阈值、切片、直方图等基本概念有扎实的概念。(仅举几例)将使您的 OpenCV 之旅更轻松。

也就是说,维基百科是这样定义的:“归一化是一个改变像素强度值范围的过程……归一化有时被称为对比度拉伸或直方图拉伸”。

为了说明这个定义,我将尝试给你一个简单的例子:

假设您有一个 8 位灰度图像,可能的像素强度值从 0 到 255。如果图像具有“低对比度”,则其直方图将显示像素集中在某个值附近,如您在下图:

现在标准化所做的是“获取”这个直方图并拉伸它。它应用了一个强度转换图,将原始最小和最大强度值与整个强度范围(0 到 255)内的一对新的最小和最大值相关联。

至于convertScaleAbs(),文档说它是scales, calculates absolute values, and converts the result to 8-bit。没什么好说的了。

完整的原型是void convertScaleAbs(InputArray src, OutputArray dst, double alpha=1, double beta=0),所以这样使用它只会计算矩阵中每个元素的绝对值并将其转换为有效的8位无符号值。

【讨论】:

  • :- 非常感谢。精彩的解释。
  • @Raj “很高兴为您服务”。干杯!
【解决方案2】:

您可能正在查看OpenCV tutorials 的代码。

通过使用 [0, 255] 对区间 [0, 255] 中的角点响应(在某个未知区间内)进行归一化

normalize( dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat() );

选择一个阈值更容易(因为您现在知道该阈值也将在区间 [0, 255] 中)以仅保留最强的响应。当您通过滑块获取阈值时,范围 [0,255] 很有用,该滑块只能具有整数值。

convertScaleAbs(dst_norm, dst_norm_scaled);

只需要将dst_norm转换为CV_8U类型的Mat,所以imshow可以正确显示。

【讨论】:

  • 他们在本教程中所做的难道不是有点错误吗?我的意思是,如果响应为负(边缘),我只想将其过滤掉,因此在规范化之前将其设为阈值更有意义......
  • @ash 我不明白为什么在归一化之前更改值范围会有所帮助...最终在归一化之后更改阈值。
  • @Miki 我可能弄错了,但在我看来,在长序列中修复阈值可能有点困难(例如城市环境中的 SLAM),所以如果你在规范化之前摆脱负面的,如果您碰巧修复了错误的阈值,至少您不会检测到任何边缘点。你会得到角落+一些扁平的东西,但这可能会在姿势计算 RANSAC 等过程中被过滤掉(如果你事先没有过滤边缘,它们的包含可能会导致 RANSAC 处理的噪音过多).. ..
  • @ash 我们在这里讨论的是单个图像。对于像您这样的更复杂的东西,其他方法可能会更好。没有黄金法则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 2012-10-24
  • 2013-08-17
  • 2018-10-22
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多