用opencv实现动检,光照变化有啥好的解决办法啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用opencv实现动检,光照变化有啥好的解决办法啊?相关的知识,希望对你有一定的参考价值。

一般的摄像头有自动适应,对过曝和欠曝都有调整。另外,你可以在程序运行的时候调用摄像头的驱动程序,在调节面板里面进行手动调节。最后,如果你这些都没有,你仍然可以通过你程序的算法进行自动调节。调节的办法很多,得根据你的识别算法来调节。比如,如果你对明暗变化要求很大,你可以直接计算阈值来整体调节。如果你有特殊的需求,你可以通过直方图的办法调节。其他一些复杂的调节请参看各类图像工程的参考书。 参考技术A 楼上说的对,但光照变化适应性最好的是帧间差,但这种方法无法取完整轮廓,尤其是缓慢运动本回答被提问者采纳 参考技术B
参考技术C 大概是光线强弱影响识别率吧。。。
调整阀值的话 应该会好一些
参考技术D 描述再清晰些?

在 C++ 11 中初始化二维数组有啥好的方法吗? [复制]

【中文标题】在 C++ 11 中初始化二维数组有啥好的方法吗? [复制]【英文标题】:Is there any good method to initialize 2-D array in C++ 11? [duplicate]在 C++ 11 中初始化二维数组有什么好的方法吗? [复制] 【发布时间】:2018-07-10 14:46:56 【问题描述】:

我想用一个二维数组初始化一个单位矩阵(主对角线上的一个,其他地方的零)。 我尝试用vector 来实现它。代码是这样的:

vector<vector<int> > matrix;
matrix.resize(n);
for(auto &i: matrix)
    i.resize(n);

// initialize...

这比仅使用 int matrix[n][n] 的普通数组复杂得多。我不这样做是因为我想返回这个二维矩阵。所以函数是这样的:

matrix_type
func(int n)

  //intialize the matrix
  ...

因为C++11中的数组是这样的:

array<Elem,N> arr;

我不知道如何在运行时获取 N。然后我决定使用向量。

那么有没有更好的方法来处理这个问题?(不使用传统数组)


感谢您的回答。这个问题可以通过使用来解决

vector<vector<int>> matrix(n, std::vector<int>(n));

还有,另一个问题。如果我是个笨蛋,只想使用接口,也就是我希望返回类型为 array&lt;int,n&gt;。那么有没有什么方法可以在运行时获取N并返回呢?

【问题讨论】:

您不能使用二维数组方法的原因是什么?所有这些方法都可以满足您的需求,您更愿意实施哪一种? 普通的int matrix[n][n] 不适用于n unknown 在编译时。 哦,这只是为了好奇。由于 STL 已经定义了一个新的 接口。所以我想知道是否有一个好的方法可以通过只使用 STL 来解决这个问题。 @V.Kravchenko 是的,那不是真的。感谢您指出。然后事情就变得复杂了~~ 请注意,向量的向量是矩阵的低效表示。连续存储的行的平面向量更好。 【参考方案1】:

您可以将矩阵的构造/初始化简化为:

vector<vector<int>> matrix(n, std::vector<int>(n));

以上行会将矩阵的所有元素初始化为 0。您可以使用 for 循环将对角元素的值设置为 1。

for ( size_t i = 0; i < n; ++i )

   matrix[i][i] = 1;

【讨论】:

哦,是的!我忘记了这个!这是一个很好的答案!谢谢~【参考方案2】:

您可以按如下方式初始化std::vector&lt;T&gt; 的二维数组:

 template<typename T>
 using Matrix = std::vector<std::vector<T>>;

 template<typename T>
 Matrix<T> make2DArray(int N, int M)
     return Matrix<T>(N, std::vector<T>(M));
 

这样称呼它:

 auto my2Darr = make2DArray<int>(20, 30);

【讨论】:

此解决方案中的 std::vector<:vector>> 太多,考虑制作 typedef typedef Matrix std::vector&lt;std::vector&lt;float&gt;&gt;; 或者如果确实需要模板 T template&lt;typename T&gt; using Matrix&lt;T&gt; = std::vector&lt;std::vector&lt;T&gt;&gt;; @V.Kravchenko,很好的收获。更新。谢谢..

以上是关于用opencv实现动检,光照变化有啥好的解决办法啊?的主要内容,如果未能解决你的问题,请参考以下文章

java 判断条件过多怎么办?有啥好的解决办法吗?

Java 导出 Word 表格有啥好的办法

VB 中有啥好的办法,用代码去除字符中的:“Tab键”,“回车键”,“空格键”符号。

easyui datagrid导出Excel 有啥好的解决方法吗

关于css的问题,下面的代码中.heng中的text-indent在IE6中不起作用,有啥好的解决办法没?

在 iOS 应用程序之间同步数据有啥好的解决方案? [关闭]