CatchZeng's Blog

记录开发的所见所闻

DevOps 是一种怎样的体验?

DevOps

一、软件开发演变史 软件行业中,每一个概念的提出都是为了解决某个特定的问题。要了解 DevOps ,就要讲下软件开发的演变史。 传统瀑布模型 需求分析,软件设计,程序编写,软件测试,运行维护。 瀑布模型被淘汰的原因 各个阶段的划分完全是固定的,阶段之间产生大量的文档,极大地增加工作量。 由于开发是线性的,所以用户只有在开发的末期才可以到成果,所以增加了风险。 早起...

Go web编程

Go

专栏简介 分享 Go web 编程。在这里你可以了解到什么是 Go,为什么越来越多人喜欢它。在实践中也能了解到 web 编程的知识。 核心内容 Go 语法; 单元测试; Go 包管理工具; web 编程; gin web 框架; restful API; web 项目 docker 化; …… 适宜人群 喜欢 Go 语言的开发者; 希望了解 web 编程的移动开发者...

Android Maven 私有库

Android

一、前言 Maven Maven 是一个项目管理和自动构建工具。Maven 包是由 POM(Project Object Model)所定义的文件包格式。Maven 包集中存放的地方,就是 Maven 仓库。这些仓库,可以是放在本地,也可以放在某个远程服务器上。 可以是私有仓库,也可以是公开的。使用方式如下 allprojects { repositories { ...

被轻视的持续集成

持续集成

专栏简介 分享持续集成的理论和实践。在这里你可以了解到什么是持续集成、持续部署、持续交付。在项目上也能从现在的“模块化”、“组件化”到“工程化”。 核心内容 持续集成理论; 持续集成工具选型; 持续集成与 Git 工作流; 多项目、多平台持续集成平台构建; 持续集成、持续部署与持续交付; 适宜人群 希望了解持续集成的开发者或者管理者; 希望优化项目流程的项目经理; ...

Middleware(中间件)之道

设计模式

一、前言 在日常开发中,我们经常遇到逻辑复杂的业务,导致代码写得又长又乱。有些逻辑像一个流程,在不同的节点需要做不同的操作。 比如,我们经常会遇到上传文件的业务。该业务要求先验证文件正确性,然后上传,最后跳转到成功的页面。 if checkFile { uploadFile { result if result { ...

Learning OpenCV with iOS:图像模糊--非线性滤波

OpenCV

一、前言 上一篇我们讲解了OpenCV图像模糊中的线性滤波。本篇主要向大家介绍下非线性滤波。按惯例,先来看下效果图。 二、线性与非线性 上一篇中使用“卷积算子计算都是线性操作,所以又叫线性滤波”简单描述了线性滤波概念。下面我们详细了解下线性滤波与非线性滤波。 数学角度 数学里,一般说的线性,是说的线性映射: 线性 = 齐次性 + 可加性 齐次性: f(ax)=af(x)...

Learning OpenCV with iOS:图像模糊--线性滤波

OpenCV

一、前言 上一篇我们讲解了OpenCV的图像亮度和对比度调整。本篇主要向大家介绍下图像模糊。按惯例,先来一张效果图。 二、模糊 所谓模糊,可以先简单理解为每一个像素都取周边像素的平均值。 上图中,2是中间点像素值,周边像素都是1。 中间点取周围点的平均值,就会变成1。在数值上叫平滑。在图形上,就产生了模糊效果,也就是中间点失去了细节。 三、图像模糊 图像模糊...

Learning OpenCV with iOS:图像亮度和对比度

OpenCV

一、前言 上一篇我们讲解了OpenCV的图像混合与ROI。本篇主要向大家介绍下图像变换的调整亮度和对比度。按惯例,先来一张效果图。 二、图像变换 算子 一般的图像处理算子都是一个函数,它接受一个或多个输入图像,并产生输出图像。 单输入 g(x) = h(f(x)) 多输入 g(x) = h(f0(x)......fn(x)) 根据算子的不同,图像变换分为两大类: ...

Learning OpenCV with iOS:图像混合与ROI

OpenCV

一、前言 上一篇我们讲解了OpenCV的掩膜操作。本篇主要向大家介绍下图像处理中的图像混合。按惯例,先来一张效果图。 二、图片相加 要叠加两张图片,可以将Mat直接相加,相加两幅图片的形状(高度/宽度/通道数)必须相同。但这样的效果不一定是你想要的。我们来看一个例子。 Mat src; Mat src2; UIImageToMat(image, src...

Learning OpenCV with iOS:掩膜操作

OpenCV

一、前言 上一篇我们简单讲解了OpenCV的概念和基础架构。本篇主要向大家介绍下图像处理中一个比较重要的概念 – 掩膜操作。开始前我们先看下利用矩阵掩膜操作来加强图像对比度的效果。 二、开胃菜-Mat对象 我们用眼睛看到的是图像,而计算机却不认识。于是,人们使用数值的形式来记录图像,比如用RGB值记录图像的每个点,以此来表示图像。就如上图,我们看到的是一辆车,而计算机“看...