org.opencv.core.RotatedRect类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(8.1k)|赞(0)|评价(0)|浏览(90)

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

RotatedRect介绍

暂无

代码示例

代码示例来源:origin: openpnp/openpnp

private RotatedRect dilateRotatedRect(RotatedRect r) {
  RotatedRect rect = new RotatedRect();
  rect.center = r.center;
  rect.angle = r.angle;
  rect.size.width = r.size.width + dilate * 2;
  rect.size.height = r.size.height + dilate * 2;
  return rect;
}

代码示例来源:origin: kongqw/OpenCVForAndroid

public RotatedRect(double[] vals) {
  this();
  set(vals);
}

代码示例来源:origin: kongqw/OpenCVForAndroid

public Rect boundingRect()
{
  Point pt[] = new Point[4];
  points(pt);
  Rect r = new Rect((int) Math.floor(Math.min(Math.min(Math.min(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.floor(Math.min(Math.min(Math.min(pt[0].y, pt[1].y), pt[2].y), pt[3].y)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].y, pt[1].y), pt[2].y), pt[3].y)));
  r.width -= r.x - 1;
  r.height -= r.y - 1;
  return r;
}

代码示例来源:origin: nroduit/Weasis

public static ImageCV getRotatedImage(Mat source, double angle, double centerx, double centery) {
  if (isEqualToZero(angle)) {
    return ImageCV.toImageCV(source);
  }
  Mat srcImg = Objects.requireNonNull(source);
  Point ptCenter = new Point(centerx, centery);
  Mat rot = Imgproc.getRotationMatrix2D(ptCenter, -angle, 1.0);
  ImageCV dstImg = new ImageCV();
  // determine bounding rectangle
  Rect bbox = new RotatedRect(ptCenter, srcImg.size(), -angle).boundingRect();
  // double[] matrix = new double[rot.cols() * rot.rows()];
  // // adjust transformation matrix
  // rot.get(0, 0, matrix);
  // matrix[2] += bbox.width / 2.0 - centerx;
  // matrix[rot.cols() + 2] += bbox.height / 2.0 - centery;
  // rot.put(0, 0, matrix);
  Imgproc.warpAffine(srcImg, dstImg, rot, bbox.size());
  return dstImg;
}

代码示例来源:origin: openpnp/openpnp

rrect = ((RotatedRect) model).clone();
  rrect = ((RotatedRect) ((List<?>) model).get(0)).clone();
RotatedRect orect = rrect.clone();
Rect bbox = rrect.boundingRect();
if (template.model == null) {
  trect = new RotatedRect(new org.opencv.core.Point(((int) timage.size().width) / 2,
      ((int) timage.size().height) / 2), timage.size(), 0.0);
  trect = ((RotatedRect) template.model).clone();

代码示例来源:origin: openpnp/openpnp

rect = ((RotatedRect) modelResult.model).clone();
    && ((List<?>) modelResult.model).get(0) instanceof RotatedRect) {
  rect = ((RotatedRect) ((List<?>) modelResult.model).get(0)).clone();
rect.angle = degrees;
Rect bbox = rect.boundingRect();

代码示例来源:origin: openpnp/openpnp

static Mat rotateRect(Mat mat, RotatedRect rect, double degrees) {
  // get the affine mattrix
  Mat mapMatrix = Imgproc.getRotationMatrix2D(rect.center, degrees, 1.0);
  // adjust rect angle to coincide with the rotation. This modifies the model
  rect.angle -= degrees;
  // find the new bbox for the now rotated rect
  Rect bbox = rect.boundingRect();
  // adjust transformation matrix
  double[] cx = mapMatrix.get(0, 2);
  double[] cy = mapMatrix.get(1, 2);
  cx[0] += bbox.width / 2D - rect.center.x;
  cy[0] += bbox.height / 2D - rect.center.y;
  mapMatrix.put(0, 2, cx);
  mapMatrix.put(1, 2, cy);
  // rotate and crop
  Imgproc.warpAffine(mat, mat, mapMatrix, bbox.size(), Imgproc.INTER_LINEAR);
  mapMatrix.release();
  // adjust the model to the new center
  bbox = rect.boundingRect();
  rect.center.x = bbox.width / 2.0;
  rect.center.y = bbox.height / 2.0;
  return mat;
}

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

public Rect boundingRect()
{
  Point pt[] = new Point[4];
  points(pt);
  Rect r = new Rect((int) Math.floor(Math.min(Math.min(Math.min(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.floor(Math.min(Math.min(Math.min(pt[0].y, pt[1].y), pt[2].y), pt[3].y)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].y, pt[1].y), pt[2].y), pt[3].y)));
  r.width -= r.x - 1;
  r.height -= r.y - 1;
  return r;
}

代码示例来源:origin: openpnp/openpnp

private static Mat rotate(Mat mat, double rotation) {
  if (rotation == 0D) {
    return mat;
  }
  // See:
  // http://stackoverflow.com/questions/22041699/rotate-an-image-without-cropping-in-opencv-in-c
  Point center = new Point(mat.width() / 2D, mat.height() / 2D);
  Mat mapMatrix = Imgproc.getRotationMatrix2D(center, rotation, 1.0);
  // determine bounding rectangle
  Rect bbox = new RotatedRect(center, mat.size(), rotation).boundingRect();
  // adjust transformation matrix
  double[] cx = mapMatrix.get(0, 2);
  double[] cy = mapMatrix.get(1, 2);
  cx[0] += bbox.width / 2D - center.x;
  cy[0] += bbox.height / 2D - center.y;
  mapMatrix.put(0, 2, cx);
  mapMatrix.put(1, 2, cy);
  Mat dst = new Mat(bbox.width, bbox.height, mat.type());
  Imgproc.warpAffine(mat, dst, mapMatrix, bbox.size(), Imgproc.INTER_LINEAR);
  mat.release();
  mapMatrix.release();
  return dst;
}

代码示例来源:origin: kongqw/OpenCVForAndroid

public RotatedRect objectTracking(Mat mRgba) {
  rgba2Hsv(mRgba);
  updateHueImage();
  // 计算直方图的反投影。
  // Imgproc.calcBackProject(hueList, new MatOfInt(0), hist, prob, ranges, 255);
  Imgproc.calcBackProject(hueList, new MatOfInt(0), hist, prob, ranges, 1.0);
  // 计算两个数组的按位连接(dst = src1 & src2)计算两个数组或数组和标量的每个元素的逐位连接。
  Core.bitwise_and(prob, mask, prob, new Mat());
  // 追踪目标
  rotatedRect = Video.CamShift(prob, trackRect, new TermCriteria(TermCriteria.EPS, 10, 1));
  if (null != mOnCalcBackProjectListener) {
    mOnCalcBackProjectListener.onCalcBackProject(prob);
  }
  // 将本次最终到的目标作为下次追踪的对象
  trackRect = rotatedRect.boundingRect();
  Imgproc.rectangle(prob, trackRect.tl(), trackRect.br(), new Scalar(255, 255, 0, 255), 6);
  Log.i(TAG, "objectTracking: 宽度 : " + trackRect.width + "  高度 : " + trackRect.height + "  角度 : " + rotatedRect.angle);
  return rotatedRect;
}

代码示例来源:origin: kongqw/OpenCVForAndroid

public static RotatedRect CamShift(Mat probImage, Rect window, TermCriteria criteria)
{
  double[] window_out = new double[4];
  RotatedRect retVal = new RotatedRect(CamShift_0(probImage.nativeObj, window.x, window.y, window.width, window.height, window_out, criteria.type, criteria.maxCount, criteria.epsilon));
  if(window!=null){ window.x = (int)window_out[0]; window.y = (int)window_out[1]; window.width = (int)window_out[2]; window.height = (int)window_out[3]; } 
  return retVal;
}

代码示例来源:origin: ytai/IOIOPlotter

public Rect boundingRect()
{
  Point pt[] = new Point[4];
  points(pt);
  Rect r = new Rect((int) Math.floor(Math.min(Math.min(Math.min(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.floor(Math.min(Math.min(Math.min(pt[0].y, pt[1].y), pt[2].y), pt[3].y)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].y, pt[1].y), pt[2].y), pt[3].y)));
  r.width -= r.x - 1;
  r.height -= r.y - 1;
  return r;
}

代码示例来源:origin: tz28/Chinese-number-gestures-recognition

public RotatedRect(double[] vals) {
  this();
  set(vals);
}

代码示例来源:origin: openpnp/openpnp

Rect bbox = new RotatedRect(center, mat.size(), degrees).boundingRect();

代码示例来源:origin: kongqw/OpenCVForAndroid

Rect rect = rotatedRect.boundingRect();
double area = rect.area();

代码示例来源:origin: farkam135/GoIV

public static RotatedRect CamShift(Mat probImage, Rect window, TermCriteria criteria)
{
  double[] window_out = new double[4];
  RotatedRect retVal = new RotatedRect(CamShift_0(probImage.nativeObj, window.x, window.y, window.width, window.height, window_out, criteria.type, criteria.maxCount, criteria.epsilon));
  if(window!=null){ window.x = (int)window_out[0]; window.y = (int)window_out[1]; window.width = (int)window_out[2]; window.height = (int)window_out[3]; } 
  return retVal;
}

代码示例来源:origin: farkam135/GoIV

public Rect boundingRect()
{
  Point pt[] = new Point[4];
  points(pt);
  Rect r = new Rect((int) Math.floor(Math.min(Math.min(Math.min(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.floor(Math.min(Math.min(Math.min(pt[0].y, pt[1].y), pt[2].y), pt[3].y)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].y, pt[1].y), pt[2].y), pt[3].y)));
  r.width -= r.x - 1;
  r.height -= r.y - 1;
  return r;
}

代码示例来源:origin: DuckDeck/AndroidDemo

public RotatedRect(double[] vals) {
  this();
  set(vals);
}

代码示例来源:origin: kongqw/OpenCVForAndroid

public static RotatedRect minAreaRect(MatOfPoint2f points)
{
  Mat points_mat = points;
  RotatedRect retVal = new RotatedRect(minAreaRect_0(points_mat.nativeObj));
  
  return retVal;
}

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

public Rect boundingRect()
{
  Point pt[] = new Point[4];
  points(pt);
  Rect r = new Rect((int) Math.floor(Math.min(Math.min(Math.min(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.floor(Math.min(Math.min(Math.min(pt[0].y, pt[1].y), pt[2].y), pt[3].y)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].x, pt[1].x), pt[2].x), pt[3].x)),
      (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].y, pt[1].y), pt[2].y), pt[3].y)));
  r.width -= r.x - 1;
  r.height -= r.y - 1;
  return r;
}

相关文章

微信公众号

最新文章

更多