【NEW-4.0】R-基本图形
前言这不是基本图形的说明使用,例如常见的条形图,饼图,直方图等,此内容可以当作快速查阅手册。
条形图简单条形图条形图通过函数barplot()来实现,函数原型如下:
12345678910barplot(height, width = 1, space = NULL, names.arg = NULL, legend.text = NULL, beside = FALSE, horiz = FALSE, density = NULL, angle = 45, col = NULL, border = par("fg"), main = NULL, sub = NULL, xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL, xpd = TRUE, log = "", axes = TRUE, axisnames = TRUE, cex.axis = par("cex.axis"), ...
关于R以及Rstudio的相关问题
前言这部分记录我所遇到的相关R及其Rstudio的问题,以及一些需要快速查阅和记忆的东西,由于问题过于琐碎,本来不愿意单独写出,如今记录成一篇文章,以此记录。
快速查阅快捷键
快捷键
功能
Ctrl + L
清空控制台
Ctrl + 1
光标聚焦到代码编辑区
Ctrl + 2
光标聚焦到控制台区域
Ctrl + 3
焦点聚焦到帮助区域
Ctrl + 5
焦点到文件区域
Ctrl + 6
光标聚焦到图上
Ctrl + 7
焦点聚焦到包区域上
Ctrl + 8
光标聚焦到环境上
Ctrl + Enter
运行当前行
Ctrl + Shift + Enter
运行当前R文件
Alt + -
左赋值号
Alt + =
右赋值号
Ctrl + Shift + M
%>%
Ctrl+Shift+C
注释/取消注释行
Alt + Shift + K
快捷键帮助面板
常用查询命令
函数
功能
nrow(obj)
查看数据多少行
ncol(obj)
查看数据多少列
dim(obj)
查看多少行 ...
【NEW-3.0】R-图形初阶
前言千呼万唤始出来,终于到了图形这部分,这部分主要说明如何创建和保存图形以及图形相关常用的参数使用。
图形相关基础函数使用图形首先,先在你的R上运行如下代码:
123456789101112# 创建一个 1.jpg 的文件jpeg('1.jpg')# 绑定trees数据attach(trees)# 根据Height和Volume绘制点图形plot(Height,Volume)# 自定义图形标题title("这是一个标题")# 解除绑定trees数据detach(trees)# 返回输出结果dev.off()
运行后会在当前工作目录下产生一个名称为1.jpg的图片,如下所示:
这就是所生成的图形,利用的是trees数据所生成的图形。
图形输出用于图形输出的函数如下所示:
函数
功能
pdf('filename.pdf')
输出PDF文件
png('filename.png')
输出PNG文件
jpeg('filename.jpg/jpeg')
输出JPG文件
bmp( ...
全方位榨干大疆MINISE
前言我的无人机到手了,但是购买的是大疆MINI-SE,有些功能想用但是没有办法实现怎么办?我开启了榨干MINI之路。
基本榨干功能:全景模式,视觉跟踪,正射影像,倾斜摄影建模,航线规划,环绕摄影。
准备工作如下是准备的基本工作,无人机型号同我或者以之上皆可,软件设备等同理。
无人机型号:大疆MINI-SE
手机设备:华为P30(HarmonyOS 2.0)
航点规划软件:Rainbow无人机控制飞行软件(V3.6)
电脑:Win10(20H2)
后期软件:Pix4Dmapper(V4.4.12),PS(CC 2018),AE(CC 2018)
全景模式对于全景模式大疆支持是MINI2及以上才支持一键全景,而MINI-SE是不支持全景的,但是我们又很想要全景的效果,这个时候就需要手动全景合成了,两种方法:
注:此处全景模式特指的是球形全景
手动全景合成关于手动全景合成可以看这个视频,【教程】Mini也能做全景图?,此处不做过多说明。
就我个人认为手动全景可以,但是工作量相对较大,而且不是很精准,我个人更推荐下面的软件合成+人工后期处理。
使用软件来合成打开【Rainbow无人机控 ...
计算叶面积
前言这周三晚上我们上了一节关于叶面积的测定方法的实验课,在课上我想出了一种测定思路,我的想法是通过固定比例尺拍照转换为灰度图来遍历图像像素判断叶的像素,然后再通过比例尺算法计算叶的面积,从程序的角度来看是可行的,只要给定输入固定比例尺的图像,就可以批量输出结果。
本来我是没打算写这个程序的,不过昨晚学习学累了,就突然想到这个事情,我就想这弄一下吧,然后就弄出来了,程序基于Win平台,使用的是C#,Winform开发技术(主要是快)。至于WPF的美化版我懒得弄了。
使用效果我早上吃完饭随手摘的银杏的叶子,然后放在一张A4纸上拍照,单击【选择图片】导入程序即可。
本方法精度取决于比例尺,所以如果想要大规模应用,需要固定相机和拍摄底的距离即可。
实现逻辑
先判断是否导入了选定图片,导入成功则显示预览图,失败则提醒,二次验证是否规定了比例尺,两者具备则可以正常计算面积
计算面积前需要将图像转换为灰度图,然后根据算法统计叶子所占的像素,然后根据比例尺算出每个像素的面积,然后加和返回结果。
程序源码12345678910111213141516171819202122232425262728 ...
关于我的人生第一台无人机
前言我快忘记我什么时候有了买无人机的念头了,我记得最近思考这个问题是今年过年的时候,也就是寒假的时候,我也快忘记我当时想的什么了,在4月1日下单购买了我人生中第一台无人机——大疆MINI SE,如下图:
关于购买和使用感受我买的是大疆截至目前写文章时最便宜的无人机,单机只需要1999,它采用的是增强WIFI图传,1200万像素,不支持变焦,从价格角度来说这是一个相对便宜的入门级无人机,从使用感官来说,WIFI图传的确不是很友好,不过对于这个价格来说,2000块钱要什么自行车。
综合来说在这个价位作为一款入门级大疆无人机,已经是非常不错了,我本人在校园测试,如果高度在100m及以上,水平可以拉锯500m起步,我拉了500m就没有再拉距。
一些无人机的问题:
【无人机FCC是什么?要不要弄】
如下图,图片内容版权归原作者所有,此处仅作引用说明,侵删。
通俗来说就是一种不同国家对于信号频率的限制,而FCC,即美国的标准可以让我们的无人机图传信号和距离更远更稳定,相对来说会增加一定的耗电量,关于要不要弄,我目前人是很懒的,能不动手就不动手,所以我没弄。
【WIFI图传怎么样?】
我只能 ...
【NEW-2.0】R-创建数据集
前言数据集的概念数据集是由数据构成的矩形数组,行表示观测(记录),列表示变量(字段)。
R有许多用于存储数据的结构,包括标量,向量,数组,数据框和列表。
R可以处理的数据类型包括数值型,字符型,逻辑型,复数型和原生型。
数据结构向量向量是用于存储数据的一维数组。
创建向量利用c()可以用来创建向量。
12a <- c(1,2,3,4)a <- c("你好","世界")
注:单个向量之内的数据类型需要相同。一个向量不可以混合多种数据类型
访问向量元素通过指定向量中元素的位置来访问元素,例如:
a[c(1)]来表示指定访问向量a中第一个元素。
a[c(1,3)]来表示指定访问向量a中第一个和第三个元素。
a[c(1:3)]来表示访问向量a中第一个到第三个元素。
【从C和C#角度看】
向量就是规定类型的一维数组,通过函数c(数据内容,间隔采用,号)来创建。
访问数组中元素通过下标来访问,使用函数向量变量[c(下标位置)]
需要注意的是:**R语言的数字是从1开始的,而不是0.**
矩阵矩阵是一个二维数组。
创建矩阵通过函数 ...
【10.0】C-文件
前言程序中数据的输入可以从键盘读取,但是对于大量的数据,人工输入的效率过于低下,而且对于多次运行的工作极为不便。所以可以通过程序对文件进行读取,然后将结果保存到另一个文件中,这样可以大幅度提高效率。
文件概述文件的定义文件指存储在外部存储介质中的有序数据集合,如系统头文件stdio.h,程序所生成的源文件.c文件,编译后产生的.obj目标文件,链接后生成的.exe执行文件。
文件的分类
从用户的角度来看,文件可以分为普通文件和设备文件
普通文件是驻留在存储介质上的有序数据集。。普通文件依据其存储内容可以分为程序文件,如源文件,头文件等,以及数据文件,存储待输入的原始数据和输出的结果数据文件。
C语言将所有外部设备都看作文件,这就是设备文件,如显示器,打印机,键盘等,将它们对系统的输入,输出等同于对磁盘文件的读和写。通常将显示器作为标准输出文件,在屏幕上的显示即是向标准输出文件输出,printf(),putchar()称为标准输出函数即原因。键盘则作为标准输入文件,从键盘上输入即标准输入文件读入数据,因此scanf(),getchar()称为标准输入函数。
虽然文件在计算中皆是用二进制 ...
【9.0】C-结构体与共用体
前言C语言的数据类型分为基本数据类型和构造数据类型,之前的int,float等数据类型都是基本数据类型,都是C语言事先定义好的数据类型,编程时直接使用即可。C语言还允许用户自定义数据类型,称为构造数据类型,例如:数组,以及下面的结构体和共用体。
结构体结构体(structure)是由不同数据类型的数据所组成的集合体,是构造数据类型,其特点是可以由不同的数据类型构成。
每一个结构体有一个名字,称为结构体名。一个结构体由若干成员组成,每个成员都有自己的名字,称为结构体成员名。结构体成员是组成结构体的要素,每个成员的数据类型可以不同。
简单来描述结构体来说如下表:
学号
姓名
性别
成绩
xxx
xxx
xxx
xxx
对于一个结构体来说就是头行,我们现在定义他的名称为:学生信息,那么组成学生信息的成员就是:学号,姓名,性别,成绩。这几个元素就是学生信息结构体的成员/元素。对于各种元素他们的类型是可以不同的。
结构体类型的定义语法格式如下:
1234567struct 结构体名{ 数据类型 成员1的名字; 数据类型 成员2的名字; 数据类 ...
【8.0】C-指针
前言兜兜转转,终于到了指针,作为C语言最重要的功能。也是C语言最强大,最复杂的机制。
指针在C程序中应用非常广泛,从基本的数据结构,如链表和树,到大型程序中常用的数据索引和复杂数据结构的组成,都离不开指针的使用。之所以说指针时C最强大的机制,在于指针可以使程序员直接按地址直接访问指定的存储空间,也可以在权限许可范围内对存储空间的数据进行任意解释和操作。
Pointer是指针的英文单词
变量的地址和指针在程序中,当我们定义一个变量时,首先要定义变量的数据类型,数据类型决定了一个变量在内存中所占用的存储空间的大小。其次要定义变量名。C语言的编译系统会根据变量的类型在适当的时候为指定的变量分配存储空间。例如,在Visual C++环境下,一个int类型数据占据4个字节的存储空间。
在计算机内部,所有的存储空间都要统一进行“编号”,即所有的存储空间都要有地址,每一存储空间具有唯一的内存地址。系统为每一个已定义的变量分配一定的存储空间,使变量名与内存的一个地址相对应,为一个变量进行赋值操作,实质就是要将变量的值存入系统为该变量分配的存储空间中,即变量的值要存入变量名对应的内存地址中。例如:
...