opencv 编程总结与备忘
来源:互联网 发布:看漫画用什么软件 知乎 编辑:程序博客网 时间:2024/04/29 20:47
参考
- 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);
0 0
- opencv 编程总结与备忘
- QT 编程备忘与总结
- Matlab 编程备忘与总结
- linux 备忘与总结
- CMake 总结与备忘
- ubuntu 备忘与总结
- python 备忘与总结
- git 备忘与总结
- 线性代数总结与备忘
- Java 备忘与总结
- c ++ 总结与备忘
- bat 脚本编程总结备忘
- [知识备忘]OpenCV安装与VS2010编译
- Deep Learning 备忘与总结
- opencv编程常见问题总结
- 基础备忘:类模板总结与补充
- 工具软件--备忘与总结
- WPS 文档编辑 总结与备忘
- C++连续读入数据
- Python中range和xrange函数的异同
- eclipse常用快捷键
- PHP-基础3
- C# UDP编程(通过类UdpClient实现收发)
- opencv 编程总结与备忘
- Android ListView 布局相关的内容
- Unity热更新介绍
- 文件/目录操作(3)——cat、tac、more、head、tail、od命令
- spring-tx是什么包
- 通过包名获取应用程序的名称
- Android GradientDrawable类的详解,设置activity的背景颜色渐变效果
- spring3.2+mybatis3 的applicationContext详细配置
- 如何解压war后缀的文件: