Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Cannot warpAffine character in license plate?

I warpAffine license plate before segmentation but cannot correct incline character.

opencv_core.RotatedRect rr = opencv_imgproc.minAreaRect(currentPlate.countor); opencv_core.Point[] pt = ImageOpenCvUtils.getVerticesPoint(rr); for (int k = 0; k < 4; k++) { opencv_imgproc.line(input, pt[k], pt[(k + 1) % 4], opencv_core.Scalar.RED); } double angle = rr.angle(); if (angle < -45) { angle += 90; }

            opencv_core.Mat rot_mat = opencv_imgproc.getRotationMatrix2D(rr.center(), angle, 1);
            opencv_core.Mat rotated = new opencv_core.Mat();
            opencv_imgproc.warpAffine(clone, rotated, rot_mat, input.size());
            opencv_core.Size size = null;
            if (rr.angle() < -45) {
                size = new opencv_core.Size(Math.round(rr.size().height()), Math.round(rr.size().width()));
            } else {
                size = new opencv_core.Size((int) rr.size().width(), (int) rr.size().height());
            }

            opencv_imgproc.rectangle(clone, rr.boundingRect(), opencv_core.Scalar.BLUE);

            opencv_core.Mat subImage = new opencv_core.Mat();
            opencv_imgproc.getRectSubPix(rotated, size, rr.center(), subImage);

C:\fakepath\1465368069087.png

Can you help me? Thanks

Cannot warpAffine character in license plate?

I warpAffine license plate before segmentation but cannot correct incline character.

 opencv_core.RotatedRect rr = opencv_imgproc.minAreaRect(currentPlate.countor);
 opencv_core.Point[] pt = ImageOpenCvUtils.getVerticesPoint(rr);
  for (int k = 0; k < 4; k++) {
  opencv_imgproc.line(input, pt[k], pt[(k + 1) % 4], opencv_core.Scalar.RED);
 }
  double angle = rr.angle();
  if (angle < -45) {
 angle += 90;
 }

}
 opencv_core.Mat rot_mat = opencv_imgproc.getRotationMatrix2D(rr.center(), angle, 1);
opencv_core.Mat rotated = new opencv_core.Mat();
opencv_imgproc.warpAffine(clone, rotated, rot_mat, input.size());
opencv_core.Size size = null;
if (rr.angle() < -45) {
size = new opencv_core.Size(Math.round(rr.size().height()), Math.round(rr.size().width()));
} else {
size = new opencv_core.Size((int) rr.size().width(), (int) rr.size().height());
}
opencv_imgproc.rectangle(clone, rr.boundingRect(), opencv_core.Scalar.BLUE);
opencv_core.Mat subImage = new opencv_core.Mat();
opencv_imgproc.getRectSubPix(rotated, size, rr.center(), subImage);

C:\fakepath\1465368069087.png

Can you help me? Thanks

Cannot rotate warpAffine character in license plate?

I warpAffine license plate before segmentation but cannot correct incline character.

            opencv_core.RotatedRect rr = opencv_imgproc.minAreaRect(currentPlate.countor);
            opencv_core.Point[] pt = ImageOpenCvUtils.getVerticesPoint(rr);
            for (int k = 0; k < 4; k++) {
                opencv_imgproc.line(input, pt[k], pt[(k + 1) % 4], opencv_core.Scalar.RED);
            }
            double angle = rr.angle();
            if (angle < -45) {
                angle += 90;
            }

            opencv_core.Mat rot_mat = opencv_imgproc.getRotationMatrix2D(rr.center(), angle, 1);
            opencv_core.Mat rotated = new opencv_core.Mat();
            opencv_imgproc.warpAffine(clone, rotated, rot_mat, input.size());
            opencv_core.Size size = null;
            if (rr.angle() < -45) {
                size = new opencv_core.Size(Math.round(rr.size().height()), Math.round(rr.size().width()));
            } else {
                size = new opencv_core.Size((int) rr.size().width(), (int) rr.size().height());
            }

            opencv_imgproc.rectangle(clone, rr.boundingRect(), opencv_core.Scalar.BLUE);

            opencv_core.Mat subImage = new opencv_core.Mat();
            opencv_imgproc.getRectSubPix(rotated, size, rr.center(), subImage);

C:\fakepath\1465368069087.png

Can you help me? Thanks