opencv的使用——经典大坑
视频或相机中读入的帧数不对,或有空帧
image check from cap or video:
you must check wether each frame is not empty when use VideoCapture. Like :
if(!image.empty())
{}
+0
这个bug你早晚会碰到的
Mat::rowRange || mat::.row // "+0" !!!
////R(3,:) = cross(R(1,:),R(2,:));
//R_out.rowRange(0, 2) = R.rowRange(0, 2) + 0; // "+0" !!!
//R_out.row(2) = R.row(0).cross(R.row(1)) + 0; // "+0" !!!
Python Open CV perspectiveTransform()
Error: Assertion failed (scn + 1 == m.cols && (depth == CV_32F || depth == CV_64F)) in perspectiveTransform, file /tmp/opencv-PEaA0A/opencv-2.4.9/modules/core/src/matmul.cpp, line 1936
解决
- 将数据类型转换为np.float32
- 将第一个参数由两通道转换为3通道
相机标定
drawchess的结果的第一列的点为宽度,点的列数为高度
opencv转换视频格式
VideoWriter writer(“object.avi”, CV_FOURCC(‘M’,’P’,’4’,’2’), 20.0, Size(640, 480));
CV_FOURCC(‘M’,’P’,’4’,’2’)设置成这样, 不然生成生.avi转换成的.mp4会有问题
cvAbsDiff
调用opencv中cvAbsDiff提示matrix.cpp:880: error: (-5) Unknown array type in file
查了很久才知道,原来在opencv3.0中的背景差分函数不是cvAbsDiff()
而是 absdiff(backgroundImage, currentImajge, foreground);
opencv版本多而杂乱,而且有C++/C的用法也不一样,千万注意
SurfFeatureDetector
调用SurfFeatureDetector 类提示没有声明,其实是该类声明于opencv2/nonfree/features2d.hpp文件中,而我们默认的声明文件opencv2/features2d.hpp,所以有些非开源免费使用的函数检测不到。解决方法#include <opencv2/nonfree/features2d.hpp>
类似的问题还有,使用BruteForceMatcher<L2> matcher 需要 include <opencv2/legacy/legacy.hpp>
Codeblocks运行opencv导入库
codeblocks运行opencv 参考
提示 undefined reference to symbol '_ZN2cv6imreadERKNS_6StringEi'
解决:文中有一步是把highgui.so opencvcore.so两个库添加到工程,而我们需要把所有含open.so的库都添加进来。
Error: invalid initialization of non-const reference of type ‘cv::Mat &’ from an rvalue of type ‘cv::Mat’
for( )
…
Cv::Mat &W = m_W.rowRange(2*frm, 2*frm + 2); // error from here!
Modify_W_function( W); // the parameter in function is needed for reference
…
end
Solution:
cv::Mat W = m_W.rowRange(2*frm, 2*frm + 2);
直观上理解,因为Modify_W_function要修改m_W的其中两行,所以应该返回一个引用类型的值,但是mat::rowRange()的返回值并非引用,所以会报这个错。
解决方法是把返回值赋给一个矩阵,但是直观上看这样再改变W的值并不会对m_W的改变。但是其实mat::rowRange()返回的是一个矩阵头,并不会重新分配内存给W,所以即使不使用引用型的W,那么W与m_w.rowRange()也是指向的是同一块内存。所以可以这么解决问题。
opencv的使用——经典大坑的更多相关文章
- OpenCV imread读取jpg图像的一个大坑
长话短说 版本区间[OpenCV3.0.0, OpenCV3.4.1]内的OpenCV,(至少在windows下,使用官方提供的预编译版本),imread读取jpg图片后的像素值,和版本区间[Open ...
- 90年代经典“手游”—拼图板小游戏Opencv实现
80后可能还对儿时玩过的一种经典木质的拼图板游戏记忆犹新,一般是一种4*4或5*5规格的手持活动板,通过挪动每个小板子的位置,拼出来板子上完整的图像,那时候还没有网吧,手机也还是大哥大的天下,所以这也 ...
- Win10 OpenCV3.3.0+VS2013配置大坑,OpenCV解决方案编译报错“找不到python36_d.lib”错误
今天因为想要用OpenCV做图像识别,小白一个,在网上找到一个教程,但是需要配置OpenCV3.3.0的环境,于是又在网上找OpenCV3.3.0+VS2013(因为我之前已经安过了VS2013),前 ...
- 解析opencv中Box Filter的实现并提出进一步加速的方案(源码共享)。
说明:本文所有算法的涉及到的优化均指在PC上进行的,对于其他构架是否合适未知,请自行试验. Box Filter,最经典的一种领域操作,在无数的场合中都有着广泛的应用,作为一个很基础的函数,其性能的好 ...
- OpenCV图像细化的一个例子
转自:http://blog.csdn.net/zfdxx369/article/details/9091953?utm_source=tuicool 本文是zhang的一篇经典图像细化论文,效果很好 ...
- 相机位姿估计1_1:OpenCV:solvePnP二次封装与性能测试
关键词:OpenCV::solvePnP 文章类型:方法封装.测试 @Author:VShawn(singlex@foxmail.com) @Date:2016-11-27 @Lab: CvLab20 ...
- 人脸识别经典算法三:Fisherface(LDA)
Fisherface是由Ronald Fisher发明的,想必这就是Fisherface名字由来.Fisherface所基于的LDA(Linear Discriminant Analysis,线性判别 ...
- opencv 简单模糊和高斯模糊 cvSmooth
cv::Mat 是C++版OpenCV的新结构. cvSmooth() 是老版 C API. 没有把C接口与C + + 结合. 建议你们也可以花一些时间看一下介绍. 同样,你如果查看opencv/mo ...
- OpenCV进阶之路:神经网络识别车牌字符
1. 关于OpenCV进阶之路 前段时间写过一些关于OpenCV基础知识方面的系列文章,主要内容是面向OpenCV初学者,介绍OpenCV中一些常用的函数的接口和调用方法,相关的内容在OpenCV的手 ...
随机推荐
- Linux之同步互斥阻塞20160703
主要介绍一下Linux下的互斥与阻塞方面的知识: 1. 原子操作 原子操作指的是在执行过程中不会被别的代码路径所中断的操作. 常用原子操作函数举例: atomic_t v = ATOMIC_INIT( ...
- STL之七:STL各种容器的使用时机详解
转载于:http://blog.csdn.net/longshengguoji/article/details/8550235 C++标准程序库提供了各具特长的不同容器.现在的问题是:该如何选择最佳的 ...
- C++之tinyXML的使用详解
tinyXML一款很优秀的操作C++类库,文件不大,但方法很丰富,和apache的Dom4j可以披靡啊!习惯了使用java类库的我看到这么丰富的c++类库,很高兴!它使用很简单,只需要拷贝几个文件到你 ...
- zabbix调优PPT
http://www.slideshare.net/xsbr/alexei-vladishev-zabbixperformancetuning# http://zabbixzone.com/zabbi ...
- jquery多组图片层次切换的焦点图
效果:
- js处理时间的那些事
我们在实际需求中一般需要对时间进行相应的出来,比如:对时间串的拆分显示,两个时间差的求值显示等. 时间拆分: 一般对于这种处理我们使用正则表示式: 正则表达式拆分时间: var date = data ...
- Sandglass
题目描述 We have a sandglass consisting of two bulbs, bulb A and bulb B. These bulbs contain some amount ...
- UVA 1635 Irrelevant Elements
https://vjudge.net/problem/UVA-1635 题意:n个数,每相邻两个求和,最后变成1个数,问这个数除m的余数与第几个数无关 n个数使用次数分别为C(n-1,i) i∈[0, ...
- Type.IsAssignableFrom 方法
方法: public virtual bool IsAssignableFrom ( Type c ) 1.如果 c 和当前 Type 表示同一类型2.当前 Type 在 c 的继承层次结构中3.当前 ...
- bzoj 1696: [Usaco2007 Feb]Building A New Barn新牛舍 ——中位数排序
Description 经过多年的积蓄,农夫JOHN决定造一个新的牛舍.他知道所有N(2 <= N <= 10,000)头牛的吃草位置,所以他想把牛舍造在最方便的地方. 每一头牛吃草的位置 ...