CV-openCV学习笔记一
来源:互联网 发布:三国志11全人物数据 编辑:程序博客网 时间:2024/05/16 04:46
openCV官方文档
导论
命名空间
using namespace cv;
自动内存管理
// 创建一个8Mb矩阵Mat A(1000, 1000, CV_64F);// 为同一个矩阵创建另外一个header// 这是一个即时操作,无论矩阵大小Mat B = A;// 为A的第三行创建另外一个header,同理没有数据复制产生Mat C = B.row(3);// 现在创建A的拷贝Mat D = B.clone();// .将B的第五行复制到C,也即是,将A的第五行复制到A的第三行B.row(5).copyTo(C);// 让A和D共享同一矩阵,而原来的A仍然被B和C引用A = D;// 现在释放B(不指向任何内存空间),但是原来的A仍然被C引用,尽管C仅仅引用一行B.release();// 最后,创建了一个C的拷贝,且C指向了这个拷贝。这时,原来的A会被释放,因为它不再被任何人引用。C = C.clone();
指针:
T* ptr = new T(...);
使用Ptr<T> ptr(new T(...));
或Ptr<T> ptr = makePtr<T>(...);
代替
自动为输出数据分配空间
饱和算法
图像类型的强制转换:
8bit图像:
代码:I.at<uchar>(y, x) = saturate_cast<uchar>(r);
Mat泛型
Mat mtx(3, 3, CV_32F); // 3x3 浮点 1通道 矩阵Mat cmtx(10, 1, CV_64FC2); // 10x1 2通道 浮点 矩阵 // 10个复向量Mat img(Size(1920, 1080), CV_8UC3); // 1080x1920(只有Size有这种效果)3通道 8位无符号整数Mat grayscale(image.size(), CV_MAKETYPE(image.depth(), 1)); // image的大小和深度,1通道
有关宏定义CV_XXX:
CV_8U,CV_8S:8位无符号数uchar;8位符号数schar
CV_16U,CV_16S:16位无符号数ushort;16位符号数short
CV_32S:32位符号数int
CV_32F,CV_64F:32位浮点数float;64位浮点数double
在上面宏定义后面
C+1~4:代表有几个通道,大于4或者编译时不知道通道数的情况下使用C(n),或者CV_MAKETYPE(CV_8U, n)
。 CV_32FC1 == CV_32F, CV_32FC2 == CV_32FC(2) == CV_MAKETYPE(CV_32F, 2)
CV_MAKETYPE(depth, n) == ((depth&7) + ((n-1)<<3)
输入输出数组
如Mat, std::vector<>, Matx<>, Vec<> 或 Scalar这类,你可以照常使用,如果函数需要额外的数组而你又不想传参的话,使用cv::noArray()
错误处理
try{ ... // call OpenCV}catch( cv::Exception& e ){ const char* err_msg = e.what(); std::cout << "exception caught: " << err_msg << std::endl;}
有以下抛出错误的方法: CV_Error(errcode, description)
,CV_Error_(errcode, printf-spec, (printf-args))
CV_Assert(condition)
,CV_DbgAssert(condition)
多线程与可重入性
Image Watch插件
下载:http://go.microsoft.com/fwlink/?LinkId=285460
视图->其他视图->image watch->Debug调试
Link Views:对同一大小的图固定查看区域
载入显示图像
- CV-openCV学习笔记一
- OpenCV学习笔记(基于OpenCV 2.4)一:哈喽CV
- CV-openCV学习笔记二
- openCv学习笔记—cv::Mat学习
- 【OpenCV学习笔记】【类型转换】一(IplImage和cv::Mat的类型相互转换)
- OpenCV笔记(cv::Mat)
- openCv学习笔记(二)—cv::Mat学习
- OpenCv学习笔记(二)—cv::Mat学习
- OpenCv学习笔记(二)—cv::Mat学习
- OpenCv学习笔记(二)—cv::Mat学习
- OpenCv学习笔记(二)—cv::Mat学习
- OpenCv学习笔记(二)—cv::Mat学习
- OpenCv学习笔记(二)—cv::Mat学习
- Emgu.CV OpenCV 学习之路(一)
- Emgu CV(OpenCV for C#)学习笔记(1)
- Emgu CV(OpenCV for C#)学习笔记(2)
- Emgu CV(OpenCV for C#)学习笔记(3)
- 【OpenCV学习笔记】二、深入了解 cv::Mat
- Android Uri to Path
- linux权限---【600,644,700,755,711,666,777】
- 使用make编译源码,使用-j 参数的作用
- Hihocoder#1183 : 连通性一·割边与割点(连通图求割点和割边)
- ES DSL
- CV-openCV学习笔记一
- scala match的运用
- 关于IJKPlayer的静态库合并生成以及引用
- 实用的 jQuery 技巧(转)
- Pattern 和 Matcher
- STM32 Keil开发环境 SWD烧写 Win10
- python 连接mysql
- 缓冲区溢出漏洞(二):堆栈和溢出.
- 大臣的旅费 蓝桥