autojs-opencv经常使用命令

// 初始化opencv
runtime.images.initOpenCvIfNeeded();
复制代码
importClass(org.opencv.core.Scalar);
importClass(org.opencv.core.Point);
importClass(java.util.LinkedList);
importClass(org.opencv.imgproc.Imgproc);
importClass(org.opencv.imgcodecs.Imgcodecs);
importClass(org.opencv.core.Core);
importClass(org.opencv.core.Mat);
importClass(org.opencv.core.MatOfDMatch);
importClass(org.opencv.core.MatOfKeyPoint);
importClass(org.opencv.core.MatOfRect);
importClass(org.opencv.core.Size);
importClass(org.opencv.features2d.DescriptorExtractor);
importClass(org.opencv.features2d.DescriptorMatcher);
importClass(org.opencv.features2d.FeatureDetector);
importClass(org.opencv.features2d.Features2d);
importClass(android.graphics.Matrix);
importClass(org.opencv.android.Utils);
importClass(android.graphics.Bitmap);
复制代码
// 读取图片
var img = Imgcodecs.imread(imgPath);

// 读取灰度图
var img = Imgcodecs.imread(imgPath, 0);
复制代码
// opencv的mat转bitmap
function mat2bitmap(img) {
  let width = img.width();
  let height = img.height();
  let bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
  Utils.matToBitmap(img, bitmap);
  return bitmap;
}
复制代码
// 缩放bitmap
function zoomBitmap(bitmap, scale) {
  let matrix = new Matrix();
  matrix.postScale(scale, scale); //长和宽放大缩小的比例
  let resizeBmp = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
  return resizeBmp;
}
复制代码
// 图片控件设置bitmap
ui.img.setImageBitmap(bitmap);
复制代码
function 二值化图片(imgPath) {
  let dst = new Mat();
  let maxValue = 255;
  let adaptiveMethod = Imgproc.ADAPTIVE_THRESH_MEAN_C;
  let thresholdType = Imgproc.THRESH_BINARY_INV;
  let blockSize = 3;
  let C = 4;
  Imgproc.adaptiveThreshold(grayImg, dst, maxValue, adaptiveMethod, thresholdType, blockSize, C);
  return dst;
}
复制代码
function newSize(size) {
  if (!Array.isArray(size)) {
    size = [size, size];
  }
  if (size.length == 1) {
    size = [size[0], size[0]];
  }
  return new org.opencv.core.Size(size[0], size[1]);
}
复制代码
// 定义轮廓变量
let contours = new java.util.ArrayList();
// 轮廓长度
let len = contours.size();
// 找轮廓
Imgproc.findContours(img, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE, Point());
// 画轮廓
Imgproc.drawContours(img, contours, i, Scalar(0, 0, 0), -1);
// 外接矩形
let rect = Imgproc.boundingRect(contour);
// 面积
let area = rect.area();
// 宽高
let width = rect.width;
let height = rect.height;
// 左上角
let left = rect.x;
let top = rect.y;
复制代码
// 黑帽
Imgproc.morphologyEx(
      img1,
      img2,
      Imgproc.MORPH_BLACKHAT,
      Imgproc.getStructuringElement(Imgproc.MORPH_RECT, newSize(5))
    );
复制代码

声明

部份内容来自网络 本教程仅用于学习, 禁止用于其余用途javascript

相关文章
相关标签/搜索