opencv 编程总结与备忘
参考
- opencv 类参考 比官方要全,比如cvBlob官网查不到
- opencv 官方参考 含入门教学
- 自己动手制作文档 使用Doxygen自动生成文档
- opencv 一览图 opencv 快速上手参考
- opencv + visual studio opencv 在windows + visual studio 下的配置
- opencv + Qt opencv 在windows + Qt + mingw 下的配置
- opencv + Qt opencv 在ubuntu 下的配置
- opencv + Qt + codeblocks opencv 在 windows + Qt + mingw + codeblocks 下的配置
- opencv + python 在 python 中使用opencv
矩阵数据类型转换
- 数据类型: CV_8U,CV_16S,CV_32FC1…
- 函数: convertTo
基本矩阵运算
- opencv doc: matrix expression
- csdn: opencv operation on arrays
基本图像处理
- opencv doc: imgproc. Image Processing
- csdn: 基本图像处理
- opencv doc: 中文图像操作翻译
记时
- getTickCount, getTickFrequency
随机数
- RNG, randu, randn
求梯度
- sobel,scharr,filter2d
求边缘
- findContour,drawContour,ContourArea
Matlab –> OpenCV
//Mat& Mat::setTo(InputArray value, InputArray mask=noArray() )
//A(mask)=B(mask)-->A.setTo(B,mask) error,but I don't known why!!!
A(mask)=B(mask)-->add(B,0,A,mask)
gray=rgb2gray(rgb)-->cvtColor(rgb,gray,CV_BGR2GRAY)
一些错误
常见错误
//错误的初始化
color_R.create(input.size(),CV_64FC1);
color_R.ones(height,width,CV_64FC1);
color_R=color_R*20;
double a=color_R.at<double>(0,0);
cout<<a<<endl; //a!=20, a=0 !!!//正确的初始化
color_R=Mat::ones(input.size(),CV_64FC1)*20;//vector<Mat> 的错误,当退出程序时,有时会出现segment fault, 可能由于vector改变大小时,重新复制出现了问题吧,不太清楚。
string s[]={"hello world","world good","no no no","kkk","fuck","good","hell","go","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};vector<Mat> mats;int frameNum=30;for(int i=0;i<frameNum;i++){Mat M;mats.push_back(M);}for(int i=0;i<frameNum;i++){cout<<"s[i]="<<s[i]<<endl;Mat a=mats[i];a.create(320,240,CV_8UC1);a=Scalar::all(0);a.at<uchar>(100,i)=100;imshow(s[i],a);waitKey(30);}
Mat <–> IplImage
- Mat vs IplImage
//Mat a;
IplImage b=IplImage(a);
IplImage *c;
c=&b;//IplImage *x;
Mat y=cv::Mat(x);
split <–> merge
//BoxUp=input+15;
//BoxDown=input-15;
Mat img = imread("lena.jpg", CV_LOAD_IMAGE_COLOR);
Mat BoxUp=input.clone();
Mat BoxDown=input.clone();
vector<Mat> inputMats,BoxUpMats,BoxDownMats;
split(input,inputMats);
split(BoxUp,BoxUpMats);
split(BoxDown,BoxDownMats);for(int i=0;i<3;i++){add(inputMats[i],15,BoxUpMats[i]);subtract(inputMats[i],15,BoxDownMats[i]);
}
cv::merge(BoxUpMats,BoxUp);
cv::merge(BoxDownMats,BoxDown);
opencv 编程总结与备忘相关推荐
- 庞锋 OpenCV 视频 学习进度备忘
书签:另外跳过的内容有待跟进 学习资源: opencv视频教程目录(初级) 主讲:庞锋,毕业于电子科技大学 知识基础支持: 线性代数 应用数学 跳过的内容: 1.第1~6集跳过,简单.(2014- ...
- fib函数用python编写_Python中利用函数装饰器实现备忘功能
"备忘"的定义 "memoization"(备忘)这个词是由Donald Michie在1968年提出的,它基于拉丁语单词"memorandum&qu ...
- PowerBuilder/PB常用备忘
目录 1. PB使用Microsoft.XMLHttp组件的属性与方法 1-1 使用步骤 1-2 XMLHTTP方法: 1-3 XMLHTTP属性: 1-4 示例: 2. Pb中Window添加鼠标滚 ...
- GPU架构杂乱备忘——IMR、TBR、TBDR
原文:https://juejin.cn/post/6844904132864655367 GPU架构杂乱备忘--IMR.TBR.TBDR 之前觉得涉及到gpu架构相关的问题只需要知道个大概就好,毕竟 ...
- element-ui 网格_UI备忘单:列表与网格
element-ui 网格 重点 (Top highlight) Grids or lists? That is the question we will look at in this cheat ...
- python 桌面备忘录_Python数据科学备忘单
python 桌面备忘录 The printable version of this cheat sheet 该备忘单的可打印版本 It's common when first learning Py ...
- Android实验之实现一个生日备忘簿
一.实验内容 实现一个生日备忘簿 二.实验目的 1. 学习 SQLite 数据库的使用; 2. 学习ContentProvider的使用; 3. 复习Android界面编程. 三.实验要求 1. 使用 ...
- OpenFace粗糙使用备忘
写在前面:一个偶然的机会帮同学配置MIMAMO-Net添加链接描述的环境,接触到OpenFace添加链接描述这个工具包,里面的一些东西不太好找,于是把它记录到这里备忘. OpenFace初识与使用 M ...
- vim的一些快捷键,备忘
vim的一些快捷键,备忘 快捷键 作用 ctrl+g ...
最新文章
- 双圆弧插值算法(三,代码实现)
- 【.Net MF网络开发板研究-01】IP地址设定及简单web演示
- python内建集合模块collections功能,计数,有序,双向队列
- Linux中Cache内存占用过高解决办法
- mysql 10个日期,MySQL自学篇(10)——日期函数
- java面试题44关于 Socket 通信编程,以下描述正确的是:( )
- 缺失值处理 - 获取一段时间内所有日期的列表 - (Python、MySQL)
- hbase scala 实例_scala操作HBase2.0
- 自检代码中trustmanager漏洞_Windows内核漏洞利用教程
- Linux grep命令的一些使用体会
- Android ActionBar示例教程
- MS-SQL数据类型详解
- 运行 DAEMON TOOL 时 提示 Virtual SCSI driver not detected
- 事实胜于雄辩,经典中的经典,经久…
- 简谈【自动化协议逆向工程技术的当前趋势】
- 在SCI-Hub上下载国外论文
- java杨戬的角色_非人哉:游戏角色反映了神仙们的爱好,杨戬太让人意外了
- 基于NABCD评论作品,及改进建议
- from用法 prepare_MySQL之prepare用法
- 汽车美容店管理系统如何管理店铺数据?