图像操作小结

Posted 莫压枯枯地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像操作小结相关的知识,希望对你有一定的参考价值。

花了两天时间弄图像. 今天做一个小结

关于图像操作. 小结

相关类.
Drawable  就是一个可画的对象. 官方文档原话是:A Drawable is a general abstraction for "something that can be drawn."
Canvas 画布. 官方文档如是说: 用这个类来画一些东西, 前提要有4个基本的部件
    1. 一个bitmap用来确定像素. 可以看一下Canvas() 的构造函数, 有三个: Canvas(); Canvas(Bitmap); Canvas(long); 最后一个是隐藏的, 所以用Canvas的时候只会用到前两个
    2. 一个Canvas 是画布
    3. 一些基本的元素(像Rect, Path, text, Bitmap这些)
    4. 一个画笔(用来确定颜色与风格)
Bitmap 位图, 用来处理图像. 获取位图的信息. 比如尺寸, 像素, 位深, alpna, 颜色格式之类. 还可以操作像素值.
Matrix    矩阵. 用来处理图像的工具. 不用多解释了

1. 先加载进来, 图像源一般有三类. 网络类型, 本地文件, 资源文件
    BitmapFactory.decodeByteArray()
    BitmapFactory.decodeResource()
    BitmapFactory.decodeFile()
    
    从网络加载的话  一般都会使用第三方库
    所以, 加载图像只要使用BitmapFactory就可以了
    
2. 对图像进行操作
    缩放操作.
    
    /** 1. 直接创建一个缩放后的图像. 最后一个参数为true 表示变形的时候抗锯齿 */
    Bitmap.createScaledBitmap(srcBitmap, width, height, true);    
    
    /** 2. 绘制到Canvas后, 使用矩阵进行操作. (使用矩阵可以抗锯齿) */
    Matrix matrix = new Matrix();
    matrix.postScale(scale,scale,0,0);
    canvas.drawBitmap(bmp, matrix, null);
    
    #. 关于图像缩放变形后的抗锯齿, 除了上面说的两种方法. 还是下面的两种方法
    1. 对Paint使用抗锯齿
    paint.setAntiAlias(true);
    canvas.drawBitmap(bmp, 0,0,paint);
    2. 给canvas加抗锯齿
    canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
    
    图像拼接.
    将图像放到canvas上面操作. 怎么弄都行. 拼接,缩放,移动,旋转,裁剪...
    常用操作以及一些其它的特效处理. 可以参考下面的连接
    http://www.cnblogs.com/bill-joy/archive/2012/06/29/2570279.html
    http://www.cnblogs.com/feisky/archive/2010/01/10/1643460.html
    
   

以上是关于图像操作小结的主要内容,如果未能解决你的问题,请参考以下文章

图像边缘检測小结

常用图像卷积核类型小结

opencv1

opencv1

OpenCV实战——像素操作

深度学习 卷积神经网络CNN