您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页opencv自学笔记

opencv自学笔记

来源:华佗小知识


OPENCV

一、 Opencv 基本架构分析

多模块组合起来的一个软件开发工具包(SDK)

1、【calib3d】

2、【cntrib】

3、【core】:核心功能模块。

4、【imgproc】:图像处理模块。

5、【features2d】

6、【flann】

7、【gpu】

8、【highgui】:高层GUI图形用户界面,包含媒体的输入输出、视频捕捉、图像视频的编码和解码、图形交互界面的接口内容等。

9、【legacy】

二、 HighGui图形用户界面初步

1、 opencv的命名空间:opencv的C++类和函数都是定义在命名空间cv之内的,访问方法:(1)、在代码开头的适当位置加上using namespace cv (2)、在使用opencv的每个内和函数时,都加入cv::命名空间。

2、 图像的载入:imread()函数

Mat imread(const string& filename, int flags=1);

(1)、const string&类型的filename,填我们需要载入的图片路径名称。

(2)、int类型的flags,为载入标志,它指一个加载图像的颜色类型。

3、图像的显示:imshow()函数

Void imshow(const string& winname, InputArray mat);

(1)、const string&类型的winname,填需要显示的窗口标识名称。

(2)、InputArray类型的mat,填需要显示的图像。

4、创建窗口:namedWindow()函数

void namedWindow(const string& winname, int flags=WINDOW_AUTOSIZE);

(1)、const string&类型的name,填写被作用窗口的标识符的窗口名称。

(2)、int类型的flags,窗口的标识,可填写WINDOW_AUTOSIZE、WINDOW_NORMAL或WINDOW_OPENGL

5、输出到文件:imwrite()函数

bool imwrite(const string& finename, InputArray img , const vector& params=vector() );

(1)、const string&类型的finename,填需要写入的文件名。注意带上后缀,如“123.jpg”

(2)、InputArray类型的img,一般填一个Mat类型的图像数据。

(3)、const wector&类型的params,表示为特定格式保存的参数编码。它有默认值vector0,所以一般情况下不需要写。

6、创建滑动条:createTrackbar()函数

C++: int createTrackbar(conststring& trackbarname, conststring& winname, int* value, int count, TrackbarCallback onChange=0, void* userdata=0);

(1)、conststring&类型的trackbarname,轨迹条的名字,用来代表我们创建的轨迹条。

(2)、conststring&类型的winname,窗口的名字,表示这个轨迹条会依附到哪个窗口上,即对应namedWindow()创建窗口时填写的某一个窗口名。

(3)、int*类型的value,一个指向整形的指针,表示滑块的位置。在创建时,滑块的初始位置就是该变量当前的值。

(4)、int类型的count,表示滑块可以达到的最大位置的值。滑块最小位置的值始终为0.

(5)、TrackbarCallback类型的onChange,它有默认值0。这是一个指向回调函数的指针,每次滑块位置改变时,这个函数都会进行回调。并且这个函数的原型必须为void XXX(int void*);,其中第一个参数是轨迹条的位置,第二个参数是用户数据。如果回调是NULL指针,则表示没有回调函数的调用,仅第三个参数value有变化。

(6)、void*类型的userdata,默认值0.这个参数是用户传给回调函数的数据,用来处理轨迹条事件。如果使用的第三个参数value实参是全局变量的话,完全可以不去管userdata参数。

7、获取当前轨迹条的位置:getTrackbarPos()函数

C++: int getTrackbarPos(conststring& trackbarname, conststring& winname);

(1)、conststring&类型的trackbarname,表示轨迹条的名字。

(2)、conststring&类型的winname,表示轨迹条的父窗口的名称。

8、鼠标操作:SetMouseCallback()

C++: void SetMouseCallback(conststring& winname, MouseCallback

onMouse, void* userdata=0)

(1)、conststring&类型的winname,窗口的名字。

(2)、MouseCallback类型的onMouse,指定窗口里每次鼠标时间发生的时候,被调用的函数指针。这个函数的原型大概为void Foo(int event, int x, int y, int flags, void* param)。其中event是EVENT_+变量之一,x、y是鼠标指针在图像坐标系中的坐标值,flags是EVENT_FLAG的组合,param是用户定义的传递到SetMouseCallback函数调用的参数。如EVENT_MOUSEMOVE为鼠标移动消息、EVENT_LBUTTONDOWN为鼠标左键按下消息等。

(3)、void*类型的userdata,用户定义的传递到回调函数的参数,默认值0。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务