自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(320)
  • 资源 (1)
  • 收藏
  • 关注

原创 opencv(三)

ptr函数Mat类提供了ptr函数可以得到图像任意行的首地址。ptr是一个模板函数,它返回了第i行的首地址。对于彩色图像,每个图像由3部分构成,蓝色通道、绿色通道和红色通道。因此对于一个包含彩色图像的Mat,会返回一个由3个8位数组成的向量。OpenCV将此类型的向量定义为Vec3b,即由三个uchar组成的向量。image.at<Vec3b>(j,i)[channel]=value;如:outp

2017-10-10 14:36:48 268

原创 傅里叶变换

傅里叶变换是一种变换而已,只是这种变换是从时间转换到频率的变换。连续傅里叶变换其实是傅里叶级数的推广,因为积分是一种极限形式的求和算子而已。任何周期函数都可以表示为不同频率的正弦和或余弦之和,每个正余弦乘以不同的系数。非周期函数(但是该曲线下的面积是有限的)也可以用正弦或余弦乘以加权函数的积分来表示,在这种情况下的公式就是傅里叶变换。用傅里叶级数或变换表示的函数特征完全可以通过傅里叶反变换来重建而不

2017-10-10 10:58:25 483

原创 卡尔曼滤波

卡尔曼滤波卡尔曼滤波适用于估计一个动态系统的最优状态。即使是观测到的系统状态参数含有噪声,观测值不准确,卡尔曼滤波也能完成对真实值的最优估计。原理先验状态估计: 卡尔曼滤波器发生作用的前提是定义域内具有正态高斯分布。

2017-09-29 22:10:08 372

原创 图像反转

图像反转s=T(r); r和s分别表示变量,即g和f在任意点(x,y)处的灰度。r、s分别代表处理前后的像素值。 灰度等级在[0,L-1]: 反转公式为s=L-1-r。 这种类型处理适用于增强嵌入在一副图像的暗区域中的白色或灰色细节,特别是黑色面积占主导地位时。对数变换s=clog(1+r); 对数变换将输入中范围窄的低灰度值映射为输出中较宽范围的灰度值。幂律(伽马变换)

2017-09-29 17:01:12 1461

原创 像素基本概念

相邻像素邻接性、连通性、区域和边界

2017-09-29 14:55:19 1509

原创 opencv腐蚀与膨胀

形态学简单来讲,形态学操作就是基于形状的一系列图像处理操作。 基本形态学操作有腐蚀与膨胀

2017-09-28 22:24:07 405

原创 opencv中滤波

邻域滤波(卷积):左边图像与中间图像的卷积产生右边图像。线性滤波处理的输出像素值g(i,j)是输入像素值f(i+k,j+I)的加权和,如下: g(i,j)=∑f(i+k,j+I)h(k,I) 其中的h(k,l),我们称之为“核”,是滤波器的加权系数,即滤波器的滤波系数。 g=f卷积h;方框滤波方框滤波(box Filter)被封装在一个名为boxblur的函数中,即boxblur函数作用是使用

2017-09-28 20:50:43 357

原创 通道与像素

图像深度:像素点的bit位就是图像的深度;图像通道:如果是24位图像,那么每个像素点取值是0到2^24。 RGB是基本三原色,如果用8位代表一种颜色,那么每种颜色最大是255,这样每个像素点的颜色值就是(0-255,0-255,0-255)。这样图像通道是3。RGB存储模型: 颜色通道的颜色:对于3通道的深度是8的RGB图像,一共可以有255^3种颜色。比如我们把图像的像素减少8倍,则每个通道只

2017-09-28 18:10:14 2939

原创 opencv其他常用数据结构

定义和输出二维点Point2f p(6,2);cout<<"[二维点]p="<<p<<";\n"<<endl;//[二维点]p=[6,2]定义和输出三维点Point3f p3f(8,2,0);cout<<"[二维点]p3f="<<p3f<<";\n"<<endl;//[二维点]p=[8,2,0];定义和输出基于Mat的std::vectorvector<float> v;v.push_ba

2017-09-28 16:54:34 251

原创 opencv的Mat类

Mat类Mat是一个类:由2个数据部分组成: 1.矩阵头(包含矩阵尺寸、存储方法、存储地址等信息); 2.一个指向存储所有像素值的矩阵(根据所选的存储方法不同,矩阵可以是不同维数的)指针。矩阵头的尺寸是常数,但矩阵本身尺寸的会依据图像不同而不同,通常比矩阵头的尺寸大数个数量级。每个Mat对象有自己的信息头,但共享一个矩阵。这通过让矩阵指针指向同一个地址而实现,而拷贝构造函数只复制信息头和矩阵指针

2017-09-28 15:38:50 301

原创 opencv( 二)

imread()//@param1:图片路径名称//@param2:int类型的flags,载入标识,指定一个加载图像的颜色类型,自带默认值1.省略则表示三通道的彩色图像。Mat imread(const string &filename,int flag=1);//higui.henum{ //将图像转换成灰度在返回,新版本废弃 CV_LOAD_IMAGE_GRAYSCAL

2017-09-28 13:34:58 248

原创 Opencv(-)

声明一个表示图像的变量。 cv::Mat image; 这句话创建一个宽高为0的图像。 cv::Mat的size方法可以获取图像尺寸。方法返回一个结构体,包含宽高。 image.size().height; image.size().width;image=cv::imread(“img.jpg”);使用前需要检查图像已经被正确读取,如果文件不存在、文件损坏或者格式无法识别,会出现错误。i

2017-09-27 21:59:47 241

原创 c++编译器加的函数

C++默认编写并调用哪些函数一个empty class经过c++处理之后,编译器会为其声明(编译器版本的)一个copy构造函数、一个copy assignment操作符和一个析构函数。此外,如果没有声明任何构造函数,编译器会声明一个default构造函数。所有这些函数是public 和inline。class Empty{}等价于class Empty{ public : E

2017-09-27 10:08:25 389

原创 操作重载

基本概念重载的运算符是具有特殊名字的函数:operator和其后要定义的运算符号组成。 重载的运算符也包含返回类型、参数列表、函数体。模板函数模板:以关键字template开始,后跟一个模板参数列表,这是一个逗号分隔的一个或者多个模板参数列表,以<> 包起来。template<typename T>T的实际类型在编译时候根据compare使用情况确定int compare(const T &1

2017-09-26 22:44:34 231

原创 拷贝构造

拷贝构造函数如果一个构造函数的第一个参数是自身类类型的引用,且任何额外的参数都有默认值,则此构造函数是拷贝构造函数。class Foo{ public : Foo(); //大多数下是const,但不是必须的 Foo(const Foo&); }

2017-09-26 22:43:10 245

原创 allocator类

allocator是一个模板。为了定义这个allocator对象,我们必须指明这个allocator可以分配的对象类型。 allocatoralloc;allocator分配的内存是未构造的。allocator<string >alloc; //可以分配string的allocator对象auto const p=alloc.allocate(n); //分配n个未

2017-09-26 18:09:47 327

原创 new和数组

new分配数组int *pia=new int[get_size()];//pia指向第一个int//【】必须是整形,但是不必是常量 typedef int arrT[42]; int *p=new arrT; //分配一个42个int型的数组虽然称使用new T[]分配的内存为“动态数组”,但是这种叫法在某种程度上有误导。当使用new分配一个数组时候,我们并未得到数组类型的对象,

2017-09-26 17:41:37 2495

原创 智能指针

shared_ptr和unique_ptrshared_ptr允许多个指针指向同一个对象; unique_ptr则独占所指向的对象。shared_ptr模板,因此创建的时候必须提供额外信息,指针可以指向的类型。 如:shared_ptr&amp;amp;lt;string&amp;amp;gt; p1; //可以指向string shared_ptr&amp;amp;lt;list&amp;amp;lt;int&amp;amp;gt;&

2017-09-26 14:36:23 293

原创 C++

Assert预处理宏assert预处理宏: 实际上是一个预处理变量,行为有点类似于内联函数。 assert宏使用一个表达式作为它的条件。 assert(expr):如果表达式为假,assert输出信息并且终止程序执行。 如果为真,则assert什么也不做。 assert定义在cassert头文件中。NDEBUG预处理变量assert的行为依赖于一个名为NDEBUG的预处理变量的状态。如果定

2017-09-24 21:37:27 261

原创 C++中数组

数组形参 数组的2个性质:1不允许拷贝数组;2。使用数组时(通常)会将其转换成指针。 因为不能拷贝数组,所以无法以值传递的方式使用数组参数。因为数组参数会被转换为指针,所以当我们为函数传递一个数组当时候,实际上传递的是指向数组首元素的指针。//形式不同,但是print函数是等价的void print(const int *);void print(const int []);void pr

2017-09-24 20:16:00 439

原创 QML的GridLayout

布局方式之一;GridLayout{ id:gridLayout3 anchors.rightMargin:0; anchors.bottomMargin:0; anchors.leftMargin:0; anchors.topMargin:0; rows:1 column:2 anchors.fill:parent; Excl

2017-09-24 15:28:40 3003

原创 QML中的Menu

menu必须依附于MenuBar的存在,否则不会显示。动态添加菜单项如给id为testitem的Menu添加一个itemtestitem.additem(qsTr("item3"));动态添加的菜单绑定事件//类似于绑定一个匿名函数代码块testitem.additem(qsTr("item3")).triggered.connected(function(){});import QtQuick

2017-09-24 14:56:58 5136

原创 Qt的QStringList

是最简单的模型类,具备向视图提供字符串数据的能力。 QStringList是一种常用的数据类型,实际上是一个字符串列表(也就是QList<QString>)QStringListModel很多时候会作为QListView或者QComboBox这种只有一列的视图组件的数据模型。//myistview.hclass myListView:public QWidget{ Q_OBJECTpu

2017-09-22 14:33:46 979

原创 C++中的&和*

在C++中,&和*这样的符号,既能用作表达式里的运算符。int i=42;int &r=i; //&紧随着类型名出现,因此是声明的一部分,r是一个引用int *p; *紧随类型名出现,是声明的一部分,p是一个指针p=&i; &出现在表达式中,是一个取地址符*p=i; *出现在表达式中,是一个解引用符int &r2=*p; &是声明的一部分,*是一个解引用符号

2017-09-21 22:58:04 1132

原创 QGC的小问题

问题1文件位置 resource/qgroundcontrol.qrc/qml/QGroundControl/Controls/QGCView.qml 问题:46与55行的else if有重复qgcApp()->toolbox()->settingsManager()->appSettings->offlineEditingFirmwareType()->setRawValue(firmware

2017-09-20 21:04:51 1093

原创 QGC之PlanMapItems

PlanMapItems.qml中定义了变量objectComponent{ id:missionLineViewComponent MapPolyline{ line.width:3 line.color:"#be781c" z:QGroundControl.ZOrderWaypointLines path:objec

2017-09-20 18:31:25 684

原创 QGC的FlightDisplayView

主要是指南针表盘1.在MainWindowInner.qml中//MainWindowInner.qmlFlightDisplayView.visible = true2.显示FlightDisplayView//FlightDisplayView.qmlQGCView{ property var _planMasterController:masterController pr

2017-09-20 15:22:42 1653

原创 QGC的MissionItem的Vehicleinfo

//MissionSettingsEditor.qmlRectangle{ id:valueRect width:availwidth height: color: visibie:missionItem.isCurrent readonly property string _firmwareLabel: qsTr("Firmw

2017-09-20 14:33:38 838

原创 QGC的MissionItem的Camera

点击之后出现一个面板,复用了SectionHead.qml//CameraSection.qmlColumn{ anchors.left:parent.left anchors.right:parent.right spacing:_margin property alias exclusiveGroup: cameraSectionHeade

2017-09-20 12:33:10 548

原创 QGC之MissionController

MissionController//主要是任务项的管理控制器//MissionController.hclass MissionController :public PlanElementController{ Q_OBJECTpublic: //指定父对象 MissionController (planMasterController *masterContr

2017-09-20 11:22:13 925

原创 QGC的PlanMasterController

在程序主要界面的 MainWindowInner.qml中,默认的visible是打开FlightDisplayView。 在FlightDisplayView.qml中,定义了很多属性。QGCView{ id:root property alias guidedController :guidedActionsController prop

2017-09-20 10:03:02 698

原创 QGC中的Video设置

VideoSettingsSettings/VideoSettings 以组为单位进行配置 在SettingsGroup.h中QMap<QString,FactMetaData*>_nameToMetaDataMap在VideoSettings.cc中_nameToMetaDataMap[videoSourceName]->setEnumInfo(videoSourceList,videoS

2017-09-19 23:39:25 2218

原创 QGC的QGroundControl

注册的单例QGroundControl在QGCApplication.cc中注册的,类是QGroundControlQmlGlobal 在QGroundControlQmlGlobal头文件中 定义了QML可以调用的很多属性和方法Q_PROPERTY(QString appName READ appName CONSTANT)Q_PROPERTY(LinkManager* linkManage

2017-09-19 17:36:54 2263

原创 QGC的AppSettings设置:offlineMaps

AppSettings.ccconst char *AppSettings::parameterDirectory ="Parameters"const char *AppSettings::telemetryDirectory ="Telemetry"const char *AppSettings::missionrDirectory ="Missions"设置里面的offlineMap选项

2017-09-19 15:19:42 1031

原创 QGC中主界面

MainWindowInner.qml//--Main UIMainToolBar{ id:toolBar; height:ScreenTools.toolbarHeight anchors.left: parent.left anchors.right: parent.right ... ... opacity:planToolBar.vis

2017-09-19 11:41:21 3271

原创 QGC之QGCToolbox

负责加载各个工具组件,如GpsManager,MapEngineManager将所有的都作为QGCToolbox的子Toolbox在QGCApplication.cc的构造方法中,最后2行就是//初始化见下面_toolbox=new QGCToolbox(this);_toolbox->setChildToolboxes();QGCToolbox的构造函数QGCToolbox::QGCToolb

2017-09-19 10:40:07 796

原创 MissionItem.cc

MissionItem::MissionItem(QObject *parent):QObject(parent),_sequenceNumber(0),doJumpId(-1)......点击MAV_CMD_NAV_WAYPOINT可以发现读取的是 /json/MavCmdInfoCommon.json文件的数据,rawName。上述图片对应MissionItemEditor.qml

2017-09-18 23:40:56 766

原创 QGC的Mission表盘

MissionSettingsEditor.qmlRectangle{ id:valuesRect; width:availableWidth; visible:missionItem.isCurrentItem; radius:_radius;CameraSection.qml组件}点击Camera后 在CameraSection.qml中Column{

2017-09-18 21:22:44 895

原创 QGC的MissionController

MissionController.cc_addMissionSettings(_visualItems,false);_initAllVisualItems();MissionController::_addMissionSettings(){ MissionSettingsItems*settingsItem=new MissionSettingsItem(_controllerVeh

2017-09-18 16:15:33 895

原创 QGC之MissionManager

不仅仅是MissionController、还有GeoFenceController、还有 RallyPointController 都是qmlRegisterUncreatable类型//不需要创建对象,直接在qml中使用?qmlRegisterUncreatable<MissionController>("QGroundControl.Controllers",1,0,"MissionC

2017-09-18 14:31:13 923

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除