使用OPENCV查找内核/矩阵的等级
Finding Rank of Kernel/Matrix using OpenCV
基本上我想找到给定内核/矩阵的等级,以便我可以检查它是否可分开?
OPENCV中是否有一个函数可以找到内核的等级?
如果我正确,我们可以使用SVD类的计算方法来找到单数值,但是之后我们如何计算排名?以下是我使用的代码。
double k = 3;
float kdata[] = {2,0,2,0,1,0,0,0,0};
Mat kernel(k,k,CV_32F, kdata);
Mat s,u,v;
SVD::compute(kernel,s,u,v);
当我们使用SVD类的计算方法时,我们基本上是在计算矩阵的奇异值分解,并且奇异值被计算并存储在第一个参数中,即变量's'。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</p>
现在要找到矩阵的等级,我们要做的就是计算变量's'的非零值的数量。
int count = 0;
for(int i = 0; i < s.rows; i++)
{
for(int j = 0; j < s.cols; j++)
{
if( s.at<float>(i,j) != 0)
count++;
}
}
cout<<count<<endl;
'count'变量存储我们的排名。现在,如果等级为1,则过滤器是可分离的。如果超过1,则不能分开。
我要感谢Frik帮助我找到答案。
相关文章:
- OpenCV CV 查找单应断言错误计数器 = > 4
- 在 openCV 矩阵中查找列最大值的索引和值
- 我最近正在阅读opencv源代码。有没有更好的方法来在opencv库中查找类定义?
- 根据现有的标签(而不是二进制图像)查找使用 OpenCV 连接的组件
- 查找从轮廓到点OPENCV C 的距离
- 在 OpenCV 和 C++ 中查找距轮廓中心最近的黑色像素
- 调试一种方法,用于使用C 中的OpenCV从视频中查找帧的平均帧
- OPENCV C - 查找图像中包含的图像
- 根据OPENCV中一个通道中的一个值,查找最大颜色像素
- 使用OPENCV查找内核/矩阵的等级
- 在 OpenCV Android 中的相机帧中查找主色
- OpenCV查找近距离物体的轮廓
- 使用OpenCV C++查找等高线中的极值点
- OpenCV查找轮廓的示例代码:向量释放问题
- 图像处理 - OpenCV - 查找图像中圆的面积和中心坐标
- 使用 Opencv 查找面部的姿势变化
- OpenCV:查找二进制 Mat 图像的所有非零坐标
- openCV C++查找轮廓
- 在c++中使用OpenCV查找每个blob中的像素数
- openCV 2.3.1 查找轮廓函数的链接错误