Я новичок в OpenCV в Android, и я пытаюсь получить это изображение прямо, но безрезультатно.
шагов, которые я сделал до сих пор
1.
//convert the image to gray scale
Imgproc.cvtColor(img, imgGray, Imgproc.COLOR_BGR2GRAY);
2.
//blur the image
Imgproc.GaussianBlur(imgGray, imgGaussianBlur, new Size(3, 3), 0);
3.
//sobel filter
Imgproc.Sobel(imgGaussianBlur, imgSobel, -1, 1, 0);
4.
// Thresholding the image
Imgproc.adaptiveThreshold(imgSobel, imgAdaptiveThreshold, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, Imgproc.THRESH_BINARY_INV, 99, 4);
5.
Mat element = getStructuringElement(MORPH_RECT, new Size(18, 4));
Imgproc.morphologyEx(imgAdaptiveThreshold, imgMoprhological, CV_MOP_CLOSE, element); //или imgThreshold
//Imgcodecs.imwrite("changes/st/6_imgMoprhologicald.png", imgMoprhological);
imgContours = imgMoprhological.clone();
Imgproc.findContours(imgContours,
contours,
new Mat(),
Imgproc.RETR_LIST,
Imgproc.CHAIN_APPROX_SIMPLE);
6.
imgMinAreaRect = img1.clone();
if (contours.size() > 0) {
for (MatOfPoint matOfPoint : contours) {
MatOfPoint2f points = new MatOfPoint2f(matOfPoint.toArray());
RotatedRect box = Imgproc.minAreaRect(points);
if (checkImageRatio(box)) {
Imgproc.rectangle(imgMinAreaRect, box.boundingRect().tl(), box.boundingRect().br(), new Scalar(0, 0, 255));
imgDetectedPlateCandidate = new Mat(imgAdaptiveThreshold_forCrop, box.boundingRect());
if (checkDensity(imgDetectedPlateCandidate))
imgDetectedPlateTrue = imgDetectedPlateCandidate.clone();
} else
Imgproc.rectangle(imgMinAreaRect, box.boundingRect().tl(), box.boundingRect().br(), new Scalar(0, 255, 0));
}
}
image1 = Bitmap.createBitmap(imgDetectedPlateTrue.cols(), imgDetectedPlateTrue.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(imgDetectedPlateTrue, image1);
return image1;
это то, что я сделалдо сих пор, но иногда возвращается неправильно или ноль.может кто-нибудь помочь мне с этим?
что я хочу,
- извлечь прямоугольник номерного знака и получить его 4 угловые точки
- сделать перспективное преобразование, используя 4 угланомерного знака и сделайте его прямым
- я хочу похожую вещь, как эта переполнение стека