本文整理了Java中org.opencv.core.RotatedRect
类的一些代码示例,展示了RotatedRect
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RotatedRect
类的具体详情如下:
包路径:org.opencv.core.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;
}
内容来源于网络,如有侵权,请联系作者删除!