如何使用Opencv从Java中检测车牌?

时间:2015-02-23 14:32:27

标签: java opencv image-processing javacv

我尝试从图像中检测到牌照。

我的步骤:

1 /滤波器噪声(平滑高斯)

2 /转换为灰色图像

3 / ThresholdBinary

4 /膨胀和侵蚀

5 / Cany过滤器和findCOntours

但我在查找和绘制许可证周围的轮廓时遇到问题。我是Java的初学者。

original image

egde image

image I want

这是我的代码:

public class ex1 {
public static void main(String[] args) {
    //read image
    IplImage orgImg = cvLoadImage("F:\\bs9.jpg");
    //smooth Gaussian
    cvSmooth(orgImg,orgImg,CV_GAUSSIAN,7);
    // gray image
    IplImage grayImg = cvCreateImage(cvGetSize(orgImg),orgImg.depth(),1);
    cvCvtColor(orgImg,grayImg,CV_BGR2GRAY);
    //Threshold binary
    cvThreshold(grayImg,grayImg,230,255,CV_THRESH_BINARY_INV);      


    //dalition - erosion

    cvErode(grayImg,grayImg,null,3);
    cvDilate(grayImg,grayImg,null,2);

    // canny filter
    IplImage egde = cvCreateImage(cvSize(grayImg.width(),grayImg.height()),IPL_DEPTH_8U,1);
    cvCanny(grayImg,egde,140,240,7);
    // show image
    cvShowImage("org",orgImg);
    cvShowImage("binary",grayImg);
    cvShowImage("edge",egde);
    //save image
    cvWaitKey();

0 个答案:

没有答案