Piszę aplikację za pomocą OpenCV 2.4.3.2 na Androida.
Moja aplikacja dotyczy rozpoznawania tablic rejestracyjnych.
istnieje kilka sposobów, aby to zrobić, postanowiłem wykonać następujące czynności:
1. Konwersja obrazu do przestrzeni barw HSV
2. Próg obraz według tablicy rejestracyjnej HSV (w moim kraju są żółte .. .)
3. wygładzić obraz Rozmycie gaussowskie
4. wykrywanie krawędzie
5. find kontury
6. houghlines funduszy
7. z houglines, wykryć krzywe, które pasują do prostokąta
siedzę na 7, nie mogę znaleźć sposobu, aby skutecznie wykryć prostokąty z ho ugliny.
Android OpenCV - wykryj krzywe z Houghlines
Byłbym bardzo wdzięczny za próbkę kodu w Javie, ponieważ większość przykładów jest w języku C/C++, a konwersja nie jest tak prosta.
tu jest mój kodu (teraz jestem po prostu rysowanie linii ...):
Imgproc.cvtColor(inputFrame, mRGBMat, Imgproc.COLOR_RGBA2BGR);
// convert HSC color space
Imgproc.cvtColor(mRGBMat, mHSVMat, Imgproc.COLOR_BGR2HSV);
// Filter out colors which are out of range (license plate hue ~ 14)
Core.inRange(mHSVMat, new Scalar(9, 70, 80, 0), new Scalar(30, 255,
255, 0), mGrayMat);
// some smoothing of the image
for (int i = 0; i < 10; i++) {
Imgproc.GaussianBlur(mGrayMat, mGrayMat, new Size(9, 9), 2, 2);
}
Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_DILATE,
new Size(3, 3), new Point(1, 1));
Imgproc.Canny(mGrayMat, mGrayMat0, 48, 120);
Imgproc.dilate(mGrayMat0, mGrayMat0, kernel);
kernel.release();
List<MatOfPoint> contours = new Vector<MatOfPoint>();
Imgproc.findContours(mGrayMat0, contours, mHirerchy,
Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);
Mat lines = new Mat(); // finds houghlines in the contours
Imgproc.HoughLinesP(mGrayMat0, lines, 1, Math.PI/180, 1);
for (int x = 0; x < lines.cols(); x++) {
double[] vec = lines.get(0, x);
double x1 = vec[0], y1 = vec[1], x2 = vec[2], y2 = vec[3];
Point start = new Point(x1, y1);
Point end = new Point(x2, y2);
Core.line(mRgba, start, end, RECT_COLOR, 1);
}
Może to pomóc: http://stackoverflow.com/questions/26583649/opencv-c-rectangle-detection-which-has-irregular-side –