RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

cầu cứu nhận diện biển số xe

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • nupakachi
    Đệ tử 1 túi
    • Jan 2013
    • 21

    #1

    cầu cứu nhận diện biển số xe

    các pro giải thích giùm em với.càng kỹ càng tốt.Em đang rất rất cần.cảm ơn rất nhiều
    Image<Bgr, Byte> img = new Image<Bgr, Byte>(image); // Ảnh đầu vào đưa về dạng Image;

    Image<Gray, Byte> image_gray = img.Convert<Gray, Byte>();// Hàm chuyển ảnh xám;

    image_gray = image_gray.SmoothGaussian(5);
    image_gray = image_gray.SmoothMedian(5);
    Image<Gray, Byte> blur = image_gray.SmoothBlur(5, 5);// Tiến hành giảm nhiễu;

    CvInvoke.cvSobel(blur, blur, 1, 0, 3);//Phát hiện biên dọc;

    CvInvoke.cvThreshold(blur, blur, 0, 255, Emgu.CV.CvEnum.THRESH.CV_THRESH_OTSU);//Phân ngưỡng Otsu

    CvInvoke.cvErode(blur, blur, IntPtr.Zero, 1);
    CvInvoke.cvDilate(blur, blur, IntPtr.Zero, 2);// Erode và dilate ảnh sau phân ngưỡng

    StructuringElementEx element = new StructuringElementEx(17, 3, 8, 2, Emgu.CV.CvEnum.CV_ELEMENT_SHAPE.CV_SHAPE_RECT);
    CvInvoke.cvMorphologyEx(blur, blur, IntPtr.Zero, element, Emgu.CV.CvEnum.CV_MORPH_OP.CV_MOP_CLOSE, 1);// Thuật toán Closing.
  • vohungvi
    Nhập môn đệ tử
    • Nov 2013
    • 4

    #2
    Giải thích cái thuật toán của OpenCV trong code bạn đưa hả? Thấy có cmt giải thích trong đó rồi mà, giải thích gì nữa bạn?
    skype: vohungvi

    Comment

    • vohungvi
      Nhập môn đệ tử
      • Nov 2013
      • 4

      #3
      Cho bạn cái hàm để bạn tham khảo

      int FindPlate()
      {
      Mat src1 = imread("images\\BienSo.jpg", CV_LOAD_IMAGE_COLOR);
      if(!src1.data)
      return 0;
      Mat src2 = src1.clone(); // copy anh
      Mat gray, binary;
      cvtColor(src1, gray, CV_BGR2GRAY);
      threshold(gray, binary, 100, 255, CV_THRESH_BINARY);
      imshow("Anh nhi phan goc", binary);
      Mat morpho;
      Mat element = getStructuringElement(MORPH_CROSS, Size(3,3), Point(1,1));
      erode(binary, morpho, element, Point(-1,-1), 3);
      imshow("Anh sau khi thuc hien phep gian no", morpho);

      vector<vector<Point> > contours1;
      findContours(binary, contours1, CV_RETR_LIST, CV_CHAIN_APPROX_NONE );
      for(size_t i = 0; i < contours1.size(); i++)
      {
      Rect r = boundingRect(contours1[i]);
      if(r.width/(double)r.height > 3.5f && r.width/(double)r.height < 4.5f)
      rectangle(src1, r, Scalar(0, 0, 255), 2, 8, 0);
      else
      rectangle(src1, r, Scalar(0, 255, 0), 1, 8, 0);
      }
      imshow("Ket qua phat hien truoc phep gian no", src1);


      vector<vector<Point> > contours2;
      findContours(morpho, contours2, CV_RETR_LIST, CV_CHAIN_APPROX_NONE );
      for(size_t i = 0; i < contours2.size(); i++)
      {
      Rect r = boundingRect(contours2[i]);
      if(r.width/(double)r.height > 3.5f && r.width/(double)r.height < 4.5f)
      rectangle(src2, r, Scalar(0, 0, 255), 2, 8, 0);
      else
      rectangle(src2, r, Scalar(0, 255, 0), 1, 8, 0);
      }
      imshow("Ket qua phat hien sau khi phep gian no", src2);
      }
      skype: vohungvi

      Comment

      • vnmember
        Nhập môn đệ tử
        • Jun 2014
        • 4

        #4
        bạn có thể hướng dẫn cụ thể hơn một chút được không mình là người mới, cảm ơn bạn
        https://nhacdj.com.vn/ Nghe Nhạc DJ Với Hàng Triệu Bản Nhạc DJ , Nonstop Việt Mix và MV Bản Quyền Chất Lượng Cao, Tương Thích Tốt Trên Các Thiết Bị Di Động Nghe & Download Nhạc DJ, Nonstop Dù Bạn Ở Bất Cứ Đâu.

        Comment

        Working...