1. 讀取圖片
Imgcodecs.java public static Mat imread(String filename) eg. Mat image = Imgcodecs.imread(url);
2. 轉換顏色空間
Imgproc.java public static void cvtColor(Mat src, Mat dst, int code) eg. Imgproc.cvtColor(image, image, Imgproc.COLOR_BGR2RGB);
3. 轉換數據類型
Mat.java public void convertTo(Mat m, int rtype) eg. image.convertTo(image, CvType.CV_32FC3)
4. 讀取像素值
Mat.java public double[] get(int row, int col)
5. 像素賦值
Mat.java public int put(int row, int col, double... data)
6. 繪圖
Imgproc.java public static void ellipse(...) //畫橢圓 public static void line(...) //畫直線 public static void arrowedLine(...) //畫帶箭頭的直線 public static void rectangle(...) //畫矩形 public static void polylines(...) //畫多邊形 public static void fillPoly(...) //填充一個或多個多邊形所包圍的區域 public static void fillConvexPoly(...) //填充凸多邊形 public static void drawContours(...) //畫輪廓 public static void putText(...) //顯示文字
7. Mat與Bitmap互轉
7.1 Mat-->Bitmap Utils.java public static void matToBitmap(Mat mat, Bitmap bmp) eg. Mat img = predict(img_path + (hasSplit ? "" : "/") + img_name); Bitmap bm = Bitmap.createBitmap(mat_img.width(), mat_img.height(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(img, bm); 7.2 Bitmap-->Mat Utils.java public static void bitmapToMat(Bitmap bmp, Mat mat) eg. Mat img = new Mat(); Bitmap bm = BitmapFactory.decodeStream(fis); Utils.bitmapToMat(bm, img);