openCV4android常用变换(一)
简介
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。–来自百度。
OpenCV4android是opencv在android上的实现,进行一定配置之后就一个在android中通过Java调用opencv中的功能,可以实现很多不同的效果和进行图片分析,处理等。
作者水平有限,并没有专门学过opencv,也不了解具体的算法实现,这篇文章只是简单的介绍一下opencv4android在android中的使用和相关api,如有误,请斧正。
这篇都有哪些内容:主要就是Imgproc中API的使用,核心(core)模块没有多介绍,一些基础的关于opencv的知识可以在http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html学习,作者本人也是在这个网站学的,而且所有文章中的内容都是根据这个网站所提供的信息,在opencv4android中的实现,欢迎交流。
- 图像平滑处理
- 腐蚀和膨胀
- 更多形态学变化
- 图像金字塔
- 简单的阈值操作
- 实现自己的线性滤波器
- 给图像添加边界
- Sobel导数
先介绍这么多,以后还会有更多的内容的。这阅读下面的内容之前,请确定自己的Studio已经配置好了opencv4android,不会的可以去看我上一篇文章。先从简单的来。
图像的平滑处理
平滑 也称 模糊, 是一项简单且使用频率很高的图像处理方法。
在opencv中有四种常用处理方式:
- blur 归一化块滤波器
- GaussianBlur 高斯滤波器
- medianBlur 中值滤波器
- bilateralFilter 双边滤波器
这里先为大家普及两个概念,内核或者说核(Size),锚点(Point)
在我看来,核就是一个物体,用这个物体去扫描图片,使图片产生一系列的变化,锚点就是这个核中额某一个点,在一些特殊需要的情况下可能不在中心位置(我猜的)
具体的每一种滤波器是如何处理图像的我也不会,复制粘贴也不是我的风格,就这样了,直接上代码,看看效果。
private Mat rgbMat,dstMat;
priva