gzx的博客

gale
私信 关注
andr_gale
码龄5年

船到桥头自然直

  • 52,309
    被访问量
  • 93
    原创文章
  • 68,262
    作者排名
  • 1,695
    粉丝数量
  • 于 2016-03-03 加入CSDN
获得成就
  • 获得57次点赞
  • 内容获得27次评论
  • 获得83次收藏
荣誉勋章
兴趣领域
  • #Android
    #Flutter
TA的专栏
  • java进阶
  • koa
    6篇
  • 微信小程序组件化
  • android jetpack系列
    2篇
  • 小程序基础
    1篇
  • Flutter
    35篇
  • 人工智障
    2篇
  • 设计模式
  • android
    3篇
  • react native基础
    4篇
  • opencv 4 android
    9篇
  • 微信小程序
    9篇
  • 计算机视觉
  • Opencv
    10篇
  • Opencv算法系列
    7篇
  • linux
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

12_微信小程序之微信视频号滚动自动播放视频效果实现

12_微信小程序之微信视频号滚动自动播放视频效果实现一.获取视频的分辨率、时长、缩略图微信小程序提供了三种方式可以获取视频的分辨率、时长:wx.getVideoInfo(Object):只能用于本地视频VideoDecoder.start(Object):可用于网络视频或者本地视频借助video标签的bindloadedmetadata回调: 可用于网络视频或者本地视频,但必须在video标签被渲染的情况下才能获取到,并且获取速度较慢 /** * @author gale
原创
282阅读
0评论
0点赞
发布博客于 1 月前

09_微信小程序之无感知刷新token

09_微信小程序之无感知刷新token一.接口调用凭证token微信小程序授权登录之后,会成生成token返回给客户端,客户端取得token之后,作为后续一系列接口的调用凭证,然后,服务器返回给客户端的token会有一个有效期,token一但过期,就会导致客户端后续的接口调用失败,因此,在调用接口之前,我们需要保证token是有效的,这样才能保证客户端的功能不会因为token过期而导致异常二.微信授权登录、token合法性及有效性校验关于微信授权登录,可参考06_基于koa实现微信小程序授权登录流程
原创
250阅读
0评论
0点赞
发布博客于 2 月前

06_基于koa实现微信小程序授权登录流程

06_基于koa实现微信小程序授权登录流程一.微信小程序获取code在微信小程序中通过wx.login(Object)获取codewx.login({ success: function(res) { if(res && res.code) { //res.code即为获取的的code } }}) 二.服务器端接受code获取到code后,需要将code以api接口调用的方式传递到服务器,服务端基于koa实现,此处将服务器端接收
原创
166阅读
0评论
1点赞
发布博客于 2 月前

08_微信小程序之大转盘svg实现

08_微信小程序之大转盘svg实现一.关于微信小程序对svg的支持这里先准备一个静态的svg文件做测试<!--components/turntable-svg/images/secs.svg--><svg width="320" height="320" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g transform="rotate(-67.5,1
原创
109阅读
0评论
0点赞
发布博客于 3 月前

07_微信小程序之大转盘自定义组件编写

07_微信小程序之大转盘自定义组件编写一.界面布局通过传入的size控制圆盘大小<!--components/turntable/index.wxml--><view class="turntable" style="width:{{size}}rpx; height:{{size}}rpx;"> <image class="outer" src="../../images/outer.png"></image> <canvas clas
原创
1091阅读
9评论
1点赞
发布博客于 3 月前

05_koa之数据库操作篇

05_koa之数据库操作篇一.使用Sequelize连接mysql数据库安装Sequelize,进入项目根目录下,通过如下命令进行安装sudo npm install sequelize安装mysql2驱动sudo npm install mysql2 导入Sequelize// projectDir/core/db.jsconst Sequelize = require('sequelize')实例化Sequelize对象// projectDir/core/db
原创
47阅读
0评论
0点赞
发布博客于 3 月前

04_koa请求参数校验

04_koa请求参数校验一. 安装 validator 和 lodashnpm install validatornpm install lodash二.实现原理将参数校验的规则配置在 validate.json 文件中,然后在校验参数之前,从json文件中解析出参数校验规则,通过解析的参数校验规则对参数进行校验,参数校验规则参考 validator 的用法// /project_root/app/validate/validate.json{ "/api/v1/member/lo
原创
88阅读
2评论
0点赞
发布博客于 4 月前

03_koa异常处理

03_koa异常处理一.全局异常处理中间件全局异常处理的中间件需满足两个条件:必须作为第一个中间件被注册在next函数被调用时,使用 try-catch 即可全局捕获到异常const catchError = async (ctx, next) => { try { await next() } catch(error) { ctx.body = "服务器出错了" }}module.exports = catchError
原创
57阅读
0评论
0点赞
发布博客于 4 月前

02_koa基础

02_koa基础一.初始化项目1.执行 sudo mkdir koa_base 命令 创建项目文件夹2.执行 cd koa_base 命令进入项目文件夹下3.执行 sudo npm init -y 命令,生成package.json文件{ "name": "koa_base", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no
原创
45阅读
0评论
0点赞
发布博客于 5 月前

01_nodejs环境搭建

01_nodejs环境搭建一.nodejs安装1.在终端执行 brew search node 命令2.在终端执行 brew install node 命令3.上述命令执行成功后,在终端执行 node -v 命令,如果能够正常输出node版本信息,则说明nodejs环境安装成功二.nvm node包管理工具安装1.在终端执行 brew search nvm 命令2.在终端执行 brew install nvm 命令3.配置nvm环境变量在终端执行 sudo open .bash_pr
原创
26阅读
0评论
0点赞
发布博客于 5 月前

06_微信小程序之自定义带胶囊按钮的导航栏

06_微信小程序之自定义带胶囊按钮的导航栏一.微信小程序右上角胶囊按钮尺寸及位置参数要想自定义胶囊状按钮,首先必须得了解微信小程序右上角自带的胶囊按钮的尺寸及其位置参数,可通过wx.getMenuButtonBoundingClientRect()获取到微信小程序右上角自带的胶囊按钮的尺寸及其位置参数其中menuButton = wx.getMenuButtonBoundingClientRect()systemInfo = wx.getSystemInfoSync()windowWidth
原创
843阅读
5评论
2点赞
发布博客于 5 月前

02_Navigation之NavHostFragment源码解析

Navigation之NavHostFragment源码解析一.NavHostController创建过程NavHostFragment在create时,首先会创建NavHostController对象public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Context context = requireContext(); m
原创
148阅读
0评论
0点赞
发布博客于 6 月前

JetPack之Navigation基本用法

01_JetPack之Navigation基本用法一.Navigation组件基本组成导航组件由以下三个关键部分组成:导航图: 包含所有与Navigation相关信息的 XML 资源文件NavHost: 显示导航图中目标的空白容器。导航组件包含一个默认 NavHost 实现 (NavHostFragment),可显示 Fragment 目标NavController: 在 NavHost 中管理应用导航的对象。当用户在整个应用中移动时,NavController 会安排 NavHost 中目标内
原创
809阅读
0评论
0点赞
发布博客于 6 月前

微信小程序01

微信小程序01一.项目结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接wxml —> android中的xmljs —> android中的javawxss —> css样式文件json —> 下拉刷新开关配置、外部组件引用配置二.生命周期onLoad: 当前页面首次加载时调用onShow: 当前页面可见时调用onReady: 监听初次渲染完成时调用onHide: 页面隐藏时调用onUnload: 页面卸载时调用onPullDown
原创
98阅读
0评论
0点赞
发布博客于 7 月前

这是不是说明上推荐了呀

发布Blink于 10 月前
03_android集成zxing并自定义扫码界面
发布Blink于 10 月前

03_android集成zxing并自定义扫码界面

03_android集成zxing并自定义扫码界面一.zxing_core jar包生成下载zxing sdk下载完成和可以看到zxing sdk的目录结构如下把core目录下的文件打成一个jar包使用Intellij IDEA创建一个java项目,命名为zxing把sdk中的core目录下的com目录完整拷贝到java项目的src目录下生成zxing_c...
原创
1199阅读
2评论
2点赞
发布博客于 10 月前

zxing3.4.0 demo集成

zxing3.4.0官方demo集成
zip
发布资源于 10 月前
05_微信小程序之scroll-view下拉刷新以及上拉加载
发布Blink于 10 月前

05_微信小程序之scroll-view下拉刷新以及上拉加载

05_微信小程序之scroll-view下拉刷新以及上拉加载一.布局确定由于在微信小程序中,每一个xml节点会被自动加上page标签,而page标签默认是高度自适应,并且可以滑动的,所以为保证滑动不会冲突,在使用scroll-view时需要将page的宽高设置为100%,并且禁用page默认的滑动效果page { width: 100%; height: 100%; overfl...
原创
3620阅读
0评论
0点赞
发布博客于 10 月前
04_微信小程序页面之间的参数传递及其通信
发布Blink于 11 月前

04_微信小程序页面之间的参数传递及其通信

微信小程序页面之间的参数传递及其通信一.应用场景在小程序中两个界面之间进行跳转是,A页面跳转至B页面,并可以向B页面传递参数,B页面返回A,并将数据带回到A二.A页面跳转到B页面,A向B传递参数在A页面跳转B页面时,直接将参数拼接在B页面的路径后边,并在B页面的onLoad方法中通过onLoad方法的形参options即可取到由A页面传递过去的参数  &nb...
原创
341阅读
0评论
0点赞
发布博客于 11 月前
03_微信小程序之自定义下拉菜单组件
发布Blink于 1 年前

03_微信小程序之自定义下拉菜单组件

03_微信小程序之自定义下拉菜单组件一.新建components,名为drop-menu二.编写下拉按钮布局<view class="drop-button"> <view class="value-text">请选择日期</view> <view class="iconfont icon-arrow-down arrow"><...
原创
524阅读
0评论
2点赞
发布博客于 1 年前
01_java设计模式之单例模式
发布Blink于 1 年前

01_java设计模式之单例模式

java设计模式之单例模式一.应用场景在实际开发中,当我们要求一个类只能被实例化一次时,比如各种各样的Manager、各种各样的Factory,可以使用单例模式二.构造单例的常规步骤提供一个public static final 的当前类的实例变量INSTANCE将构造方法设置为private,保证其对外不能通过new关键字实例化通过getInstance的静态方法返回一个唯一的当前...
原创
176阅读
0评论
0点赞
发布博客于 1 年前
02_android中搭建maven私服
发布Blink于 1 年前

02_android中搭建maven私服

android中搭建maven私服一.下载nexus通过nxeus官网进行下载二.打开dos窗口,进入nexus/bin目录下三.通过’./nexus start’命令启动nexus服务器四.在浏览器中输入’http://127.0.0.1:8081’, 如果能够访问到首页,则说明nexus服务器启动成功五.登录nexus服务器,默认的账号密码分别为admin和admin123...
原创
170阅读
0评论
0点赞
发布博客于 1 年前
36_Flutter之AnimatedAlign组件
发布Blink于 1 年前

36_Flutter之AnimatedAlign组件

Flutter之AnimatedAlign组件一.AnimatedAlign可以通过改变子组件件的对齐方式,来控制其子组件的平移动画效果AnimatedAlign({ Key key, @required this.alignment, this.child, Curve curve = Curves.linear, @required Duration duration,...
原创
357阅读
0评论
0点赞
发布博客于 1 年前
02_python进阶语法
发布Blink于 1 年前

02_python进阶语法

python进阶语法一.正则表达式与json正则表达式正则表达式是一个特殊的字符序列,用于判断一个字符串是否与我们所设定的字符序列匹配可用于快速检索文本,替换文本元字符与普通字符a = 'C0C++4Java5C#6Python7Javascript'提取字符串a中的所有数字import rea = 'C0C++4Java5C#6Python7Javascri...
原创
66阅读
0评论
0点赞
发布博客于 1 年前
01_python基础语法
发布Blink于 1 年前

01_python基础语法

python基础语法一.基本数据类型Number:数字int: 整数float: 浮点数'2/2’得到的是一个浮点类型的结果,'2//2’得到的则是一个整型的结果;例如:1/2=0.51//2=0bool: 布尔类型,表示真(True)和假(False),布尔类型属于数字,可以通过int(True)和int(False)将布尔类型转化为数字,也可以通过bool...
原创
156阅读
0评论
0点赞
发布博客于 1 年前

35_Flutter之自定义下拉列表组件

Flutter之自定义下拉列表组件一.实现思路通过自定义路由继承自PopupRoute,并结合Navigator.push使弹出的下拉列表能够覆盖在当前页面显示使用CustomSingleChildLayout组件,自定义SingleChildLayoutDelegate并结合RelativeRect来控制下拉列表显示的位置和高度使用SizeTransition实现下拉列表的下拉动画效果...
原创
3053阅读
5评论
3点赞
发布博客于 1 年前

34_Flutter之自定义侧滑菜单组件

Flutter之自定义侧滑菜单组件一.页面布局采用横向滚动的ListView实现,ListView的第一个元素为实际显示的item,并且其宽度为整个侧滑组件的宽度,后边的元素为侧滑菜单项。由于ListView在指定滑动方向为横向时,其宽度是不受限制的,所以需要为侧滑组件提供一个属性,用于确定ListView的宽度,并且使ListView中的第一个元素填充ListView的宽度。...
原创
457阅读
0评论
0点赞
发布博客于 2 年前

33_Flutter之拍照和选择相册

Flutter之拍照和选择相册一.在.yaml文件中导入image_picker插件,并pub get下载依赖dependencies: flutter: sdk: flutter image_picker: ^0.6.2+1二.平台兼容针对ios平台,需要在Info.plist文件中定义相机、相册、录音的使用说明<key>NSCameraUsageDe...
原创
647阅读
0评论
0点赞
发布博客于 2 年前

32_Flutter之为文本添加渐变色

Flutter之为文本添加渐变色1.使用Text组件显示一段文字Center( heightFactor: 1.0, child: Container( child: Text( "春蚕到死丝方尽,蜡炬成灰泪始干", style: TextStyle( color: Color(0xff000000) ), ), ...
原创
709阅读
1评论
0点赞
发布博客于 2 年前

31_Flutter之从无到有撸一个轮播图组件

Flutter之从无到有撸一个轮播图组件本文将基于PageView组件实现一个轮播图组件,PageView组件和android中的ViewPage类似一.轮播图组件应该具有如下属性scrollDirection:滑动或轮播方向Axis.horizontal: 左右轮播Axis.vertical: 上下轮播children: 轮播图的各个item,类型为Listindi...
原创
160阅读
0评论
0点赞
发布博客于 2 年前

30_Flutter之IndexedStack组件

Flutter之IndexedStack组件一.参数说明IndexedStack({ Key key, AlignmentGeometry alignment = AlignmentDirectional.topStart, TextDirection textDirection, StackFit sizing = StackFit.loose, th...
原创
1268阅读
0评论
0点赞
发布博客于 2 年前

29_Flutter之Stack组件

Flutter之Stack组件一.参数说明Stack({ Key key, this.alignment = AlignmentDirectional.topStart, this.textDirection, this.fit = StackFit.loose, this.overflow = Overflow.clip, List<Wi...
原创
82阅读
0评论
0点赞
发布博客于 2 年前

28_Flutter之Transform组件

Flutter之Transform组件一.参数说明const Transform({ Key key, @required this.transform, this.origin, this.alignment, this.transformHitTests = true, Widget child, })1.对子组件做平移、旋转、缩放变...
原创
823阅读
0评论
0点赞
发布博客于 2 年前

27_Flutter之SizedBox组件

Flutter之SizedBox组件一.参数说明const SizedBox({ Key key, this.width, this.height, Widget child }) const SizedBox.expand({ Key key, Widget child }) : width = double.infinity, ...
原创
506阅读
0评论
0点赞
发布博客于 2 年前

26_Flutter之OverflowBox组件

Flutter之OverflowBox组件一.参数说明const OverflowBox({ Key key, this.alignment = Alignment.center, this.minWidth, this.maxWidth, this.minHeight, this.maxHeight, Widget child, }...
原创
293阅读
0评论
0点赞
发布博客于 2 年前

25_Flutter之Offstage组件

Flutter之Offstage组件一.参数说明const Offstage({ Key key, this.offstage = true, Widget child })1.Offstage组件用于控制子组件的显示于隐藏2.offstage其值为true时,则Offstage中的子组件会被隐藏其值为false时,则Offstage中的子组件正...
原创
165阅读
0评论
0点赞
发布博客于 2 年前

24_Flutter之LimitedBox组件

Flutter之LimitedBox组件一.参数说明const LimitedBox({ Key key, this.maxWidth = double.infinity, this.maxHeight = double.infinity, Widget child, })1.不受约束的情况:Row组件中的子元素宽度不受约束Column组件中的子元...
原创
109阅读
0评论
1点赞
发布博客于 2 年前

23_Flutter之IntrinsicWidth

Flutter之IntrinsicWidth组件一.参数说明const IntrinsicWidth({ Key key, this.stepWidth, this.stepHeight, Widget child })1.IntrinsicWidth用于限制子组件的宽度为其自身的宽度2.stepWidth如果非空,则强制子组件的宽度为该...
原创
574阅读
0评论
1点赞
发布博客于 2 年前

22_Flutter之IntrinsicHeight

Flutter之IntrinsicHeight组件一.参数说明const IntrinsicHeight({ Key key, Widget child })IntrinsicHeight可以将其内部子元素的高度限制为其本身的高度
原创
1647阅读
0评论
2点赞
发布博客于 2 年前

21_Flutter之FractionallySizedBox组件

Flutter之FractionallySizedBox组件一.参数说明const FractionallySizedBox({ Key key, this.alignment = Alignment.center, this.widthFactor, this.heightFactor, Widget child, })1.widthFacto...
原创
669阅读
0评论
0点赞
发布博客于 2 年前

20_Flutter之BaseLine组件

Flutter之BaseLine组件一.参数说明const Baseline({ Key key, @required this.baseline, @required this.baselineType, Widget child, })1.baseline:子组件基准线距离顶部的距离2.baselineTypeTextBaseline.alp...
原创
114阅读
0评论
0点赞
发布博客于 2 年前

19_Flutter之ConstraintsBox组件

Flutter之ConstraintsBox组件一.参数说明ConstrainedBox({ Key key, @required this.constraints, Widget child, })1.constraints:限制子组件的宽高BoxConstraints.tight(Size size):限制子组件的宽高为Size的大小BoxConst...
原创
289阅读
0评论
0点赞
发布博客于 2 年前

18_Flutter之AspectRatio组件

Flutter之AspectRatio组件一.参数说明const AspectRatio({ Key key, @required this.aspectRatio, Widget child, })1.aspectRatio:AspectRatio组件中的子组件的宽高比2.child:AspectRatio组件中的子组件...
原创
121阅读
0评论
0点赞
发布博客于 2 年前

17_Flutter之FittedBox组件

Flutter之FittedBox组件一.参数说明const FittedBox({ Key key, this.fit = BoxFit.contain, this.alignment = Alignment.center, Widget child, })1.fit:FittedBox的缩放模式BoxFit.fill:对FittedBox组件中...
原创
67阅读
0评论
0点赞
发布博客于 2 年前

16__Flutter之Column组件

Flutter之Column组件一.参数说明Column({ Key key, MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start, MainAxisSize mainAxisSize = MainAxisSize.max, CrossAxisAlignment crossAxisAlign...
原创
94阅读
0评论
0点赞
发布博客于 2 年前

15_Flutter之Row组件

Flutter之Row组件一.参数说明Row({ Key key, MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start, MainAxisSize mainAxisSize = MainAxisSize.max, CrossAxisAlignment crossAxisAlignment =...
原创
192阅读
0评论
1点赞
发布博客于 2 年前

14_Flutter之Align组件

Flutter之Align组件一.参数说明const Align({ Key key, this.alignment = Alignment.center, this.widthFactor, this.heightFactor, Widget child, })1.alignment: 设置子组件的对齐方式,具体设置参考Flutter之Cont...
原创
255阅读
0评论
0点赞
发布博客于 2 年前

13_Flutter之Padding组件

Flutter之Padding组件一.参数说明const Padding({ Key key, @required this.padding, Widget child,})1.padding:组件的内边距通过EdgeInsets或者EdgeInsetsDirectional进行设置,具体设置查阅Flutter之Container组件2.显示在Paddin...
原创
109阅读
0评论
0点赞
发布博客于 2 年前

12_Flutter之Center组件

Flutter之Center组件一.参数说明const Center({ Key key, double widthFactor, double heightFactor, Widget child })1.widthFactor: Center组件的宽度因子当 widthFactor == null时,Center组件的宽度要多大有多大,相当...
原创
384阅读
0评论
0点赞
发布博客于 2 年前

11_Flutter之AppBar组件

Flutter之AppBar组件一.参数说明AppBar({ Key key, this.leading, this.automaticallyImplyLeading = true, this.title, this.actions, this.flexibleSpace, this.bottom, this.elevation...
原创
79阅读
0评论
0点赞
发布博客于 2 年前

10_Flutter之Container组件

Flutter之Container组件一.参数说明Container({ Key key, this.alignment, this.padding, Color color, Decoration decoration, this.foregroundDecoration, double width, double height...
原创
152阅读
0评论
0点赞
发布博客于 2 年前

09_Flutter之计数器程序

Flutter之计数器程序import 'package:flutter/material.dart';/** * main函数是Flutter应用的入口,这种写法是以下写法的简写形式: * void main() { * runApp(new MyApp()); * } * 即当一个函数的函数体只有一条语句或表达式时,可以使用箭头函数进行简写 */void main()...
原创
100阅读
0评论
0点赞
发布博客于 2 年前

08.Flutter之开发规范

Flutter之开发规范一.项目结构规范1.使用android-studio默认创建的项目,其目录结构如下图所示:android目录:存放android项目结构代码ios目录:存放ios项目结构代码lib目录:存放Flutter核心的逻辑代码test目录:存放测试用例代码应用外部包以及项目的配置信息写在 pubspec.yaml 文件里2.在实际的项目开发过程中,我们还需要用...
原创
212阅读
0评论
0点赞
发布博客于 2 年前

02_ReactNative之StatusBar

02_ReactNative之StatusBar一.StatusBar是一个状态栏组件,可以同时在界面上渲染多个StatusBar组件,当渲染多个StatusBar时,多个StatusBar的属性值将按照StatusBar的渲染顺序合并<View> <StatusBar backgroundColor="blue" barStyle="dark-content" />...
原创
87阅读
0评论
1点赞
发布博客于 2 年前

01_react-native环境搭建

01_react-native环境搭建1.安装homebrewruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2.安装nodebrew search nodebrew install node3.安装watchmanbrew search watchm...
原创
79阅读
0评论
1点赞
发布博客于 2 年前

linux常用命令

linux常用命令cd 文件目录------进入指定文件目录cd …/-------进入上一层目录ls -------列举当前所在目录的所有文件和文件目录pwd------显示当前的工作路径mkdir 文件目录------新建文件目录mkdir -p 文件目录------新建多级目录cp 源文件 目标文件目录下------拷贝文件cp -r 源文件目...
原创
72阅读
0评论
1点赞
发布博客于 2 年前

02_微信小程序中使用字体图标

02_微信小程序中使用字体图标一.字体图标生成使用photoshop切出需要的图标,png和psd均可,以下边的图标为例使用Super Vectorizer将上面的图标转换为svg,如下图所示,点击导出,并选择格式为svg即可登录iconfont矢量图标库,在图标管理菜单下选择我的项目,并新建项目在iconfont矢量图标库中,切换至刚刚新建的项目,并点击上传图标至...
原创
125阅读
0评论
0点赞
发布博客于 2 年前

01_android中使用字体图标

01_android中使用字体图标一.字体图标生成使用photoshop切出需要的图标,png和psd均可,以下边的图标为例使用Super Vectorizer将上面的图标转换为svg,如下图所示,点击导出,并选择格式为svg即可登录iconfont矢量图标库,在图标管理菜单下选择我的项目,并新建项目在iconfont矢量图标库中,切换至刚刚新建的项目,并点击上传图...
原创
101阅读
0评论
1点赞
发布博客于 2 年前

07_OpenCv之矩阵的加法运算

07_OpenCv之矩阵的加法运算一.矩阵的加法矩阵的加法是指两个矩阵对于位置的数值相加,对于矩阵的加法,以如下两个矩阵为例:src1=[23123901002500]src1=\left[ \begin{matrix} 23 &amp; 123 &amp; 90\\ 100 &amp; 250 &amp; 0 \end{matrix} ...
原创
940阅读
0评论
1点赞
发布博客于 11 月前

06_OpenCv通道分离与合并

06_OpenCv通道分离与合并一.通道分离对于一个多通道矩阵m,将所有向量的第一个值组成的单通道矩阵作为第一个通道,将所有向量的第二个值组成的单通道矩阵作为第二通道,依此类推。使用opencv提供的split函数可分离多通道,这些单通道矩阵被存放在vector容器中。Vector<Mat> planes;split(m, planes);同样可以将多个具有相同尺寸和数据...
原创
873阅读
0评论
0点赞
发布博客于 2 年前

05_OpenCv之获取Mat中某一区域的值

05_OpenCv之获取Mat中某一区域的值一.以如下Mat对象为例mat=[12345678910111213141516171819202122232425]mat=\left[ \begin{matrix} 1 &amp; 2 &amp; 3 &amp; 4 &amp; 5\\ 6 &amp; 7 &amp; 8 &...
原创
2736阅读
0评论
1点赞
发布博客于 2 年前

04_OpenCv之访问多通道Mat对象中的值

04_OpenCv之访问多通道Mat对象中的值一.利用成员函数at利用成员函数at访问多通道Mat的元素值,可以将多通道Mat看作一个特殊的二维数组,只是在每一个位置上不是一个数值,而是一个向量.for(int r=0; r<m.rows; r++) { for(int c=0; c<m.cols; c++) { cout << m.at<...
原创
1591阅读
0评论
0点赞
发布博客于 2 年前

03_OpenCv之向量类Vec

03_OpenCv之向量类Vec一.定义这里的向量可以理解为数学意义上的列向量,构造一个_cnx1的列向量,数据类型为_Tp,格式如下:Vec<Typename _Tp, int _cn>二.构造向量类比如构造一个长度为3,数据类型为int且初始化为21、32、14的列向量,代码如下:Vec<int, 3> vi(21, 32, 14);通过成员变量row...
原创
732阅读
0评论
0点赞
发布博客于 2 年前

02_OpenCv之访问单通道Mat对象中的值

02_OpenCv之访问单通道Mat对象中的值一.利用成员函数at对于单通道且数据类型为CV_32F的Mat对象,以:m=[111233435116]m=\left[ \begin{matrix} 11 &amp; 12\\ 33 &amp; 43\\ 51 &amp; 16 \end{matrix} \right]m=⎣⎡​113351...
原创
1228阅读
0评论
1点赞
发布博客于 2 年前

01_OpenCv之Mat类

01_OpenCv之Mat类一.构造函数Mat(int rows, int cols, int type);其中:rows:代表矩阵的行数cols:代表矩阵的列数type:代表类型,包括通道数及其数据类型,可以设置为CV_8UC(n)、CV_8SC(n)、CV_16SC(n)、CV_16UC(n)、CV_32SC(n)、CV_32FC(n)、CV_64FC(n),其中8U、8S、1...
原创
94阅读
0评论
2点赞
发布博客于 2 年前

10_OpenCv图像均值滤波(模糊)

10_图像均值滤波(模糊)一.图像均值滤波图像均值滤波是指,先对图像的卷积核做归一化处理后(即均值滤波器),再与图像进行卷积,例如一个3x3的归一化的卷积核如下:kernel=19[111111111]kernel=\frac{1}{9}\left[ \begin{matrix} 1 &amp; 1 &amp; 1\\ 1 &amp; 1 &a...
原创
175阅读
0评论
0点赞
发布博客于 2 年前

10_Opencv图像均值滤波(模糊)

10_Opencv图像均值滤波(模糊)一.图像均值滤波是指,先对图像的卷积核做归一化处理后(即均值滤波器),再与图像进行卷积,例如一个3x3的归一化的卷积核如下:kernel=19[111111111]kernel=\frac{1}{9}\left[ \begin{matrix} 1 &amp; 1 &amp; 1\\ 1 &amp; 1 &am...
原创
332阅读
0评论
0点赞
发布博客于 2 年前

09_OpenCv图像卷积

09_图像卷积一.图像的矩阵表示方法对于单通道的图像,i和j分别表示行和列的索引,输入图像为src,则i从1~src.rows-1,j从1~src.cols-1时,src可以表示成如下形式:src=[I(i−1,j−1)I(i−1,j)I(i−1,j+1)I(i,j−1)I(i,j)I(i,j+1)I(i+1,j−1)I(i+1,j)I(i+1,j+1)]src=\left[ \be...
原创
125阅读
0评论
0点赞
发布博客于 2 年前

09_Opencv图像卷积

09_Opencv图像卷积一.图像的矩阵表示方法对于单通道的图像,i和j分别表示行和列的索引,输入图像为src,则i从1~src.rows-1,j从1~src.cols-1时,src可以表示成如下形式:src=[I(i−1,j−1)I(i−1,j)I(i−1,j+1)I(i,j−1)I(i,j)I(i,j+1)I(i+1,j−1)I(i+1,j)I(i+1,j+1)]src=\left...
原创
136阅读
0评论
1点赞
发布博客于 2 年前

08_OpenCv绘制形状和文字

08_绘制形状和文字一.Point对象与Scalar对象Point对象:表示2D平面上的一个点(x, y)Point p = new Point();p.x = 11;p.y = 14;或者Point p = new Point(11, 14);Scalar对象Scalar scalar = new Scalar(a, b, c, d);//a = red, b = ...
原创
130阅读
0评论
1点赞
发布博客于 2 年前

07_OpenCv图像掩膜操作

07_图像掩膜操作一.以行为单位遍历Mat中的像素信息通过src.row(i,0,new byte[src.cols()*src.channels()])得到由图像第i行的像素信息组成的byte数组像素值的范围处理:保证运算后的像素值在0-255之间:private static int saturateCast(double pixelValue) { int newVa...
原创
296阅读
0评论
1点赞
发布博客于 2 年前

06_OpenCv调整图像对比度与亮度

06_OpenCv调整图像对比度与亮度一.公式dst = alpha*src + betaalpha > 0,控制图像对比度beta是增益变量,控制图像亮度在通过bitmap.setPixels(pixels, 0, width, 0, 0, width, height)操作像素时,要求bitmap对象的isMutable为true,可通过如下方式来设置:Bitm...
原创
182阅读
0评论
1点赞
发布博客于 2 年前

05_OpenCv图像线性混合

05_OpenCv图像线性混合一.图像的线性混合dst = alpha*src1 + beta*src2beta = 1-alphaalpha的取值为:0.01.0之间,同理,beta取值也在0.01.0之间gama不取零的情况:dst = alphasrc1 + betasrc2 + gama二.Opencv Android SDK中图像线性混合的APICore.addWeig...
原创
162阅读
0评论
1点赞
发布博客于 2 年前

08_Opencv绘制形状和文字

08_Opencv绘制形状和文字一.cv::Point与cv::ScalarPoint表示2D平面上的一个点(x, y)Point p;p.x = 11;p.y = 14;或者Point p = Point(11, 14);Scalar表示四个元素的向量Scalar(a, b, c, d)//a = blue, b = green, c = red, d = alph...
原创
124阅读
0评论
2点赞
发布博客于 2 年前

07_Opencv调整图像对比度和亮度

07_Opencv调整图像对比度和亮度一.公式dst = alpha*src + betaalpha > 0,控制图像对比度beta是增益变量,控制图像亮度二.通过像素指针的方式实现对比度和亮度调节 Mat src = imread("/Users/zhixingao/Downloads/android/OpencvForCPlus/素材/莱娜.png"); i...
原创
537阅读
0评论
1点赞
发布博客于 2 年前

06_Opencv图像混合

06_Opencv图像混合一.图像的线性混合dst = alpha*src1 + beta*src2beta = 1-alphaalpha的取值为:0.01.0之间,同理,beta取值也在0.01.0之间gama不取零的情况:dst = alpha*src1 + beta*src2 + gama二.Opencv中图像线性混合的APIaddWeighted(const CvArr ...
原创
82阅读
0评论
1点赞
发布博客于 2 年前

05_Opencv图像操作

05_Opencv图像操作一.读写图像imread:加载灰度或者RGB图像imwrite:保存图像文件,类型由扩展名决定二.读取像素通过像素指针读取像素Mat src = imread("/Users/zhixingao/Downloads/android/OpencvForCPlus/素材/莱娜.png");if(src.empty()) { printf("cou...
原创
157阅读
3评论
2点赞
发布博客于 2 年前

04_Opencv之Mat对象

04_Opencv之Mat对象一.Mat对象与IplImage对象Mat对象:自动分配内存,不存在内存泄露的问题,分为头部与数据部分IplImage对象:需要自己分配与管理内存,容易导致内存泄漏问题二.Mat构造函数 Mat(); // 默认构造函数 Mat(int rows, int cols, int type); //指定行数、列数、类型的构造函数 ...
原创
91阅读
0评论
1点赞
发布博客于 2 年前

03_Opencv图像的掩膜操作

03_Opencv图像的掩膜操作一.获取图像的像素指针通过Mat.ptr(int i)获取像素矩阵的指针,索引i表示第几行,从0开始计行数获取当前行指针const uchar* current = src.ptr&amp;amp;lt;uchar&amp;amp;gt;(row);获取当前像素点P(row,col)的像素值P(row,col)=current[col]像素值的范围处理:使用satur...
原创
269阅读
0评论
2点赞
发布博客于 2 年前

02_Opencv加载、修改、保存图片

02_Opencv加载、修改、保存图片一.使用cv::imread函数加载图像imread:通过文件的方式加载图像,其中第一个参数为待加载图像文件的路径,第二个参数表示加载的图像类型,常见的取值如下:IMREAD_UNCHANGED(&amp;lt;0):加载原图,不做任何改变IMREAD_GRAYSCALE(=0):把原图作为灰度图像加载IMREAD_COLOR(&amp;gt;0):把原图作为RG...
原创
175阅读
0评论
1点赞
发布博客于 2 年前

01_MacOs下opencv开发环境搭建

01_MacOs下opencv开发环境搭建一.安装homebrewruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;二.安装cmakebrew search cmakebrew install cmake三.从官网下载Opencv源码包(3.1.0版本)...
原创
127阅读
0评论
1点赞
发布博客于 2 年前

OpencvQTKit工具包

解决Opencv编译时QTKit/QTKit.h' file not found的错误,解压后放入编译报错的模块的src目录下
zip
发布资源于 2 年前

07.Flutter之创建无限滚动的list

Flutter之创建无限滚动的list三.创建一个无限滚动的ListView1.在RandomWordsState使用一个 _suggestions 列表保存生成的单词对,同时使用一个TextStyle类型的变量 _biggerFont 来设置字体大小class RandomWordsState extends State&lt;RandomWords&gt; { final Li...
原创
1210阅读
0评论
1点赞
发布博客于 2 年前

06.Flutter之创建一个StatefulWidget(有状态组件)

Flutter之创建一个StatefulWidget(有状态组件)一.StatelessWidget(无状态组件)与StatefulWidget(有状态组件)的区别StatelessWidget: 无状态组件,它的属性不能被修改(所有的值都是final)StatefulWidget:持有的状态会在组件的生命周期中发生改变二.实现一个StatefulWidget实现一个Statef...
原创
610阅读
0评论
1点赞
发布博客于 2 年前

05.Flutter之Dart基础语法(二)

Flutter之Dart基础语法(二)一.类和对象与java一样,Dart是一门面向对象的语言,对象具有特定的属性和动作,每个对象都是一个类的实例,对象的属性对应一个类中的成员变量,而对象的动作则对应一个类中的方法,所有的类都继承自Object,通过创建一个对象,可以访问对象的成员变量和方法var p = Point(2, 2);print(p.toString());//打印结果 {...
原创
201阅读
0评论
1点赞
发布博客于 2 年前

04.Flutter之Dart基础语法(一)

Flutter之Dart基础语法一.代码运行ide使用androidstudio在Flutter项目的test目录下,新建并编写待执行的dart文件然后右键run就可以运行了。(注意:需要连接手机或者模拟器)二.注释单行注释: 以’//'开头多行注释: 以’/‘开头,以’/'结尾文档注释: 以’///‘或者’/**'开头,可以通过dartdoc命令导出文档,导出的结果在我的工...
原创
4134阅读
0评论
2点赞
发布博客于 2 年前

03.Flutter之使用外部包

Flutter之使用外部包1.打开pubspec.yaml,并添加english_words外部包依赖可以在 https://pub.dartlang.org/flutter/ 上找到english_words软件包以及其他许多开源软件包dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2 english_...
原创
1462阅读
0评论
1点赞
发布博客于 2 年前

02.Flutter之Hello World

Flutter之Hello World1.Flutter项目命名,不同单词之间使用下划线隔开,例如:flutter_hello_world2.创建Flutter项目,并替换main.dartimport 'package:flutter/material.dart';void main() =&gt; runApp(new MyApp());class MyApp extends S...
原创
93阅读
0评论
1点赞
发布博客于 2 年前

01.Mac OS系统下Flutter开发环境搭建

Mac OS系统下Flutter开发环境搭建1.下载Flutter SDK并解压.https://flutter.io/docs/get-started/install/macos. 2.Flutter环境变量配置.a.进入自己的用户目录.cd ~b.查看".bash_profile"文件是否存在,如果存在就跳过步骤c.ls -anc.创建环境变量配置文件touch .ba...
原创
2470阅读
0评论
1点赞
发布博客于 2 年前

04_OpenCv像素取反

OpenCv像素取反一.Mat像素取反1.将bitmap对象转换为mat对象2.通过Mat对象的cols()方法和rows()方法,获取图片的宽高3.获取图片的通道数4.分配一个字节数组,其长度为图片的通道数5.循环遍历Mat对象的对应行列上的像素信息6.取出对应行列上的像素信息,赋给字节数组7.通过遍历字节数组,对图片的每一个通道都进行取反8.将取反后的像素重新设置回Mat对...
原创
957阅读
0评论
2点赞
发布博客于 3 年前

03_OpenCv灰度化图像

OpenCv灰度化图像一.在android中,使用Bitmap对象来描述一张图片,而在OpenCv For Android中使用Mat对象来描述一张图片,因此,在android中使用OpenCv处理图像时,就会存在Mat对象与Bitmap对象的相互转化二.android中将drawable资源转化为Bitmap对象BitmapFactory.Options options = ...
原创
408阅读
0评论
1点赞
发布博客于 3 年前