毛星云博客第三讲学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了毛星云博客第三讲学习相关的知识,希望对你有一定的参考价值。
http://blog.csdn.net/poem_qianmo/article/details/20537737
使用opencv的命名空间,标配开头
#include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> using namespace cv;
存储图像
Mat型存储图像数据
读取图像
Mat imread(const string& filename, intflags=1 );
intflags=1代表三通道彩色图像 =0代表灰度图
创建窗口
void namedWindow(const string& winname,int flags=WINDOW_AUTOSIZE );
winname 窗口名称 flags可以控制窗口是否改变,默认是根据图片大小
显示
void imshow(const string& winname, InputArray mat);
InputArray可以理解为Mat
暂停
waitkey(int N)
等待N毫秒时间 然后按任意按键继续
保存到文件
bool imwrite(const string& filename,InputArray img, const vector<int>& params=vector<int>() );
练习
#include <opencv2/core/core.hpp> #include <highgui/highgui.hpp> using namespace cv; using namespace std; int main() { Mat image = imread("I:\\Pictures\\414非主流的小公举\\414非主流的小公举\\1.jpg"); namedWindow("小公举"); imshow("小公举", image); waitKey(0); imwrite(".\\test.jpg", image); return 0; }
后记:
在opencv2.0以前,只有cv,比如cvmat,IplImage,cvloadimage等等,而CvMat是一个Struct,每次调用之前必须进行内存分配,CvMat *a = cvCreateMat(),
用完之后进行内存释放。opencv2.0以后新增C++接口的 Mat矩阵,cv::Mat是一个类(Class),使用是不用分配内存,用完也不用释放,相对应的读取图片为imread等等。
所以现在不用cv开头了
- //选择roi,rect的四个参数分别是(x,y)坐标,第三个参数是宽度,第四个参数是高度
- Mat roi(mat,Rect(0,0,2,1));
- cout<<roi<<endl;
以上是关于毛星云博客第三讲学习的主要内容,如果未能解决你的问题,请参考以下文章
游戏开发大神“浅墨”《OpenCV3编程入门》作者毛星云“意外”离世
图像识别——《OpenCV3编程入门-毛星云》第二部分 初探core组件