org.opencv.imgproc.Imgproc.getStructuringElement()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(7.1k)|赞(0)|评价(0)|浏览(265)

本文整理了Java中org.opencv.imgproc.Imgproc.getStructuringElement()方法的一些代码示例,展示了Imgproc.getStructuringElement()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Imgproc.getStructuringElement()方法的具体详情如下:
包路径:org.opencv.imgproc.Imgproc
类名称:Imgproc
方法名:getStructuringElement

Imgproc.getStructuringElement介绍

[英]Returns a structuring element of the specified size and shape for morphological operations.

The function constructs and returns the structuring element that can be further passed to "createMorphologyFilter", "erode", "dilate" or "morphologyEx". But you can also construct an arbitrary binary mask yourself and use it as the structuring element.

Note: When using OpenCV 1.x C API, the created structuring element IplConvKernel* element must be released in the end using cvReleaseStructuringElement(&element).
[中]为形态学操作返回指定大小和形状的结构元素。
该函数构造并返回可进一步传递给“createMorphologyFilter”、“腐蚀”、“扩张”或“morphologyEx”的结构元素。但是您也可以自己构造任意的二进制掩码,并将其用作结构元素。
注意:使用OpenCV 1时。x C API,创建的结构元素IplConvKernel* element最终必须使用cvReleaseStructuringElement(&element)发布。

代码示例

代码示例来源:origin: RaiMan/SikuliX2

public static List<Element> detectChanges(Mat base, Mat mChanged) {
 int PIXEL_DIFF_THRESHOLD = 3;
 int IMAGE_DIFF_THRESHOLD = 5;
 Mat mBaseGray = Element.getNewMat();
 Mat mChangedGray = Element.getNewMat();
 Mat mDiffAbs = Element.getNewMat();
 Mat mDiffTresh = Element.getNewMat();
 Mat mChanges = Element.getNewMat();
 List<Element> rectangles = new ArrayList<>();
 Imgproc.cvtColor(base, mBaseGray, toGray);
 Imgproc.cvtColor(mChanged, mChangedGray, toGray);
 Core.absdiff(mBaseGray, mChangedGray, mDiffAbs);
 Imgproc.threshold(mDiffAbs, mDiffTresh, PIXEL_DIFF_THRESHOLD, 0.0, Imgproc.THRESH_TOZERO);
 if (Core.countNonZero(mDiffTresh) > IMAGE_DIFF_THRESHOLD) {
  Imgproc.threshold(mDiffAbs, mDiffAbs, PIXEL_DIFF_THRESHOLD, 255, Imgproc.THRESH_BINARY);
  Imgproc.dilate(mDiffAbs, mDiffAbs, Element.getNewMat());
  Mat se = Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(5, 5));
  Imgproc.morphologyEx(mDiffAbs, mDiffAbs, Imgproc.MORPH_CLOSE, se);
  List<MatOfPoint> contours = new ArrayList<MatOfPoint>();
  Mat mHierarchy = Element.getNewMat();
  Imgproc.findContours(mDiffAbs, contours, mHierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);
  rectangles = contoursToRectangle(contours);
  Core.subtract(mDiffAbs, mDiffAbs, mChanges);
  Imgproc.drawContours(mChanges, contours, -1, new Scalar(255));
  //logShow(mDiffAbs);
 }
 return rectangles;
}

代码示例来源:origin: us.ihmc/ihmc-perception

public static void morphologicallyOpen(Mat hsvImage, int size)
{
 Imgproc.erode(hsvImage, hsvImage, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(size, size)));
 Imgproc.dilate(hsvImage, hsvImage, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(size, size)));
}

代码示例来源:origin: us.ihmc/IHMCPerception

public static void morphologicallyOpen(Mat hsvImage, int size)
{
 Imgproc.erode(hsvImage, hsvImage, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(size, size)));
 Imgproc.dilate(hsvImage, hsvImage, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(size, size)));
}

代码示例来源:origin: us.ihmc/IHMCPerception

public static void morphologicallyClose(Mat hsvImage, int size)
{
 Imgproc.dilate(hsvImage, hsvImage, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(size, size)));
 Imgproc.erode(hsvImage, hsvImage, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(size, size)));
}

代码示例来源:origin: us.ihmc/ihmc-perception

public static void morphologicallyClose(Mat hsvImage, int size)
{
 Imgproc.dilate(hsvImage, hsvImage, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(size, size)));
 Imgproc.erode(hsvImage, hsvImage, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(size, size)));
}

代码示例来源:origin: JavaOpenCVBook/code

private Mat getKernelFromShape(int elementSize, int elementShape) {
  return Imgproc.getStructuringElement(elementShape, new Size(elementSize*2+1, elementSize*2+1), new Point(elementSize, elementSize) );
}

代码示例来源:origin: JavaOpenCVBook/code

private Mat getKernelFromShape(int elementSize, int elementShape) {
  return Imgproc.getStructuringElement(elementShape, new Size(elementSize*2+1, elementSize*2+1), new Point(elementSize, elementSize) );
}

代码示例来源:origin: JavaOpenCVBook/code

private Mat getKernelFromShape(int elementSize, int elementShape) {
  return Imgproc.getStructuringElement(elementShape, new Size(elementSize*2+1, elementSize*2+1), new Point(elementSize, elementSize) );
}

代码示例来源:origin: JavaOpenCVBook/code

private Mat getKernelFromShape(int elementSize, int elementShape) {
  return Imgproc.getStructuringElement(elementShape, new Size(elementSize*2+1, elementSize*2+1), new Point(elementSize, elementSize) );
}

代码示例来源:origin: us.ihmc/IHMCPerception

Imgproc.erode(mat, mat, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(20, 20)));
Imgproc.dilate(mat, mat, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(20, 20)));
Imgproc.dilate(mat, mat, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(20, 20)));
Imgproc.erode(mat, mat, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(20, 20)));

代码示例来源:origin: us.ihmc/ihmc-perception

Imgproc.erode(mat, mat, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(20, 20)));
Imgproc.dilate(mat, mat, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(20, 20)));
Imgproc.dilate(mat, mat, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(20, 20)));
Imgproc.erode(mat, mat, Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(20, 20)));

代码示例来源:origin: hschott/Camdroid

protected void execute() {
    out = gray();
    Imgproc.equalizeHist(out, out);
    synchronized (mog) {
      mog.apply(out, this.mask, (double) (-10 + learning_rate) / 10);
    }
    Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_DILATE,
        new Size(3, 3));
    Imgproc.dilate(mask, mask, kernel);
    ArrayList<MatOfPoint> contours = new ArrayList<MatOfPoint>();
    Imgproc.findContours(this.mask, contours, new Mat(),
        Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);
    double maxheight = object_max_size * this.in.height() / 100;
    double minheight = object_min_size * this.in.height() / 100;
    Iterator<MatOfPoint> each = contours.iterator();
    each = contours.iterator();
    while (each.hasNext()) {
      MatOfPoint contour = each.next();
      Rect rect = Imgproc.boundingRect(contour);
      if (rect.height > minheight && rect.height < maxheight) {
        Imgproc.rectangle(out, rect.tl(), rect.br(), new Scalar(255,
            0, 0), 1);
      }
    }
  }
}

代码示例来源:origin: com.sikulix/sikulixapi

public boolean hasChanges(Mat current) {
 int PIXEL_DIFF_THRESHOLD = 5;
 int IMAGE_DIFF_THRESHOLD = 5;
 Mat bg = new Mat();
 Mat cg = new Mat();
 Mat diff = new Mat();
 Mat tdiff = new Mat();
 Imgproc.cvtColor(base, bg, Imgproc.COLOR_BGR2GRAY);
 Imgproc.cvtColor(current, cg, Imgproc.COLOR_BGR2GRAY);
 Core.absdiff(bg, cg, diff);
 Imgproc.threshold(diff, tdiff, PIXEL_DIFF_THRESHOLD, 0.0, Imgproc.THRESH_TOZERO);
 if (Core.countNonZero(tdiff) <= IMAGE_DIFF_THRESHOLD) {
  return false;
 }
 Imgproc.threshold(diff, diff, PIXEL_DIFF_THRESHOLD, 255, Imgproc.THRESH_BINARY);
 Imgproc.dilate(diff, diff, new Mat());
 Mat se = Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(5,5));
 Imgproc.morphologyEx(diff, diff, Imgproc.MORPH_CLOSE, se);
 List<MatOfPoint> points = new ArrayList<MatOfPoint>();
 Mat contours = new Mat();
 Imgproc.findContours(diff, points, contours, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);
 int n = 0;
 for (Mat pm: points) {
  log(lvl, "(%d) %s", n++, pm);
  printMatI(pm);
 }
 log(lvl, "contours: %s", contours);
 printMatI(contours);
 return true;
}

相关文章

Imgproc类方法