Tôi đang viết một ứng dụng bằng cách sử dụng OpenCV 2.4.3.2 dành cho Android.
ứng dụng của tôi là về nhận dạng biển số xe.
có một vài cách để làm điều đó, tôi đã chọn để làm như sau:
1. Chuyển đổi hình ảnh vào không gian màu HSV
2. image ngưỡng theo biển số xe HSV (ở nước tôi họ là vàng .. .)
3. mịn hình ảnh với một Gaussian Blur
4. phát hiện cạnh
5. tìm đường nét
6. houghlines quỹ
7. từ houglines, phát hiện đường cong phù hợp với hình chữ nhật
tôi đang mắc kẹt tại 7, tôi không thể tìm ra cách để phát hiện thành công các hình chữ nhật uglines.
Android OpenCV - phát hiện đường cong từ Houghlines
Tôi rất nhiều sẽ đánh giá cao một mẫu mã trong Java, vì hầu hết các ví dụ đều có trong C/C++ và chuyển đổi nó không đơn giản như vậy.
đây là mã của tôi (ngay bây giờ tôi chỉ vẽ đường ...):
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);
}
Điều này có thể giúp bạn: http://stackoverflow.com/questions/26583649/opencv-c-rectangle-detection-which-has-irregular-side –