OpenCV学习

mat对象

mat对象除了像素点数据外,还包含图像的其他属性,具体为宽、高、维度、通道数、深度、类型等。

  1. Mat mat = Imgcodecs.imread(file.getpath()),默认加载的是BGR的彩色图像,默认的类型是CV_8UC3,CV表示计算机视觉,8U表示8位、U表示无符号char,C3表示三个通道。
    类比android中的Bitmap 8888格式,bitmap 8888 的位深度都为8位,一共有4个通道,因此一个像素占用4个字节,CV_8UC3的位深度为8位,一共有3个通道,因此一个像素占用3个字节。
  2. Utils.bitmapToMat(bitmap,mat)
  3. Mat m = new Mat(new Size(3,3),CvType.CV_8UC3)
  4. Mat.eye(3,3,CvType.CV_8UC3)

图像滤波

  1. 滤波api在imgproc里,线性滤波器有均值、高斯滤波器。非线性滤波器有中值、最大值、最小值滤波器。
  2. 高斯双边滤波、均值迁移滤波
  3. 自定义滤波器