用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<int,n>
。那么有没有什么方法可以在运行时获取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<T>
的二维数组:
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>> 太多,考虑制作 typedeftypedef Matrix std::vector<std::vector<float>>;
或者如果确实需要模板 T template<typename T> using Matrix<T> = std::vector<std::vector<T>>;
@V.Kravchenko,很好的收获。更新。谢谢..以上是关于用opencv实现动检,光照变化有啥好的解决办法啊?的主要内容,如果未能解决你的问题,请参考以下文章
VB 中有啥好的办法,用代码去除字符中的:“Tab键”,“回车键”,“空格键”符号。
easyui datagrid导出Excel 有啥好的解决方法吗