最基本的几种图片处理方式:
- 灰度化处理
Imgproc.cvtColor(inputmat,outputmat,Imgproc.COLOR_BGRA2GRAY);
这个是opencv中封装的源码,其中四个参数,
- Mat src :inputmat 输入的图片(下面出现的outputmat都是同一解释)
- Mat dst:outputmat 灰度化后输出的图片(下面出现的outputmat都是同一解释)
- int code:Imgproc.COLOR_BGRA2GRAY 最后一个就是依赖库中封装的处理方法了,以int形式存在于Imgproc这个类中
- 二值化处理
Imgproc.threshold(inputmat,outputmat,150,255,CvType.CV_8SC1);
- double thresh,double maxval :二值化时设置的阈值
- int type :CvType.CV_8SC1 输出的图片的类型
- 滤波处理
//高斯滤波
public static Mat removeNoiseGaussianBlur(Mat srcMat){
Mat blurredImage=new Mat();
Size size=new Size(7,7);
Imgproc.GaussianBlur(srcMat,blurredImage,size,10,0);
return blurredImage;
}
- 膨胀
Mat elemat = Imgproc.getStructuringElement(Imgproc.MORPH_RECT,
new Size(3, 3), new Point(-1, -1));
Imgproc.erode(inputmat,outputmat,elemat,new Point(-1,-1),1);
- 腐蚀
Mat elemat = Imgproc.getStructuringElement(Imgproc.MORPH_RECT,
new Size(3, 3), new Point(-1, -1));
Imgproc.erode(inputmat,outputmat,elemat,new Point(-1,-1),2);
- Imgproc.MORPH_RECT代表了图片处理时的形态学运算方式
- new Point则是代表锚点位置,默认是在中心
- RGB转HSV
Imgproc.cvtColor(inputmat, outputmat, Imgproc.COLOR_RGB2HSV);