Thông báo

Collapse
No announcement yet.

[OpenCV] Tìm hình vuông, tam giác ???

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [OpenCV] Tìm hình vuông, tam giác ???

    Mọi người cho mình hỏi, làm sao để xác định một hình vuông hay hình tam giác trong ảnh?
    Mình có nghĩ về việc dùng contours xác định đường viền rồi tìm số lượng cạnh của nó. Nhưng nếu như vậy thì nếu nó có 4 cạnh, làm sao biết nó sẽ là tứ giác thường hay hình vuông, hình chữ nhật??
    Mong mọi người giúp đỡ, mình mới làm quen với OpenCV thôi

  • #2
    Xem bài hướng dẫn ở đây

    Shape Detection & Tracking using Contours

    Việc phát hiện hình chữ nhật trong không gian thì xem ở bài viết này:

    http://citeseerx.ist.psu.edu/viewdoc...=rep1&type=pdf

    Source code tham khảo ở đây:

    https://github.com/bsdnoobz/opencv-c...gmentation.cpp

    1 số chương trình ứng dụng có thể xem ở đây:

    Electronics and Robotics : RS4 - Robot Update (new features) (mục Isolate sign and correct perspective)

    Hoặc ở đây

    Life of a young programmer: Tutorial: Detecting / recognizing multiple rectangles and extracting with OpenCV

    Comment


    • #3
      Cái này thì cũng có thể dùng:
      edge detect

      Sau đó kiểm tra:

      nếu dò thấy 4 cạnh thì nó là hình chữ nhật
      nếu cạnh =3 thì là tam giác
      nếu cạnh=1 thì là hình tròn.

      Với những cách mạnh hơn ta có thể tìm được nhiều hơn, vd tìm các kí tự có kích thước như chữ "BASTOS" trên gói thuốc lá Bastos ở dưới đây:

      Từ hình ban đầu sau một số bước lọc:
      threshold-đặt ngưỡng
      negative-đảo
      blobsize-dò khối có kích thước đặt trước
      blob filter-lọc tìm khối
      shape match-so sánh hình dạng

      Sẽ tìm được chữ BASTOS
      Attached Files
      Last edited by avr; 07-01-2014, 14:44.

      Comment


      • #4
        Phát hiện khói, lửa....
        Với các bước sau ta có thể xác định ngọn lửa để dung cho việc phòng cháy, nổ từ xa, rất chính xác. Ngay khi di chuyển cái hộp quẹt màu vàng qua lại thì camera vẫn không phản ứng gì, chỉ khi có ngọn lửa từ cây đèn cầy cháy lên nó mới bắt đầu phát hiện và ghi lại hình ảnh thực của ngọn lửa, đồng thời phát ra tín hiệu phản ứng qua phần cứng. Có vẻ nó giống con tê giác trong phim “Đến thượng đế cũng phải cười”.

        Từ hình ảnh ban đầu:

        Click image for larger version

Name:	i2.jpg
Views:	2
Size:	58.2 KB
ID:	1391253
        Click image for larger version

Name:	i6.jpg
Views:	2
Size:	53.8 KB
ID:	1391254

        Khi đốt lửa lên:

        Click image for larger version

Name:	i8.jpg
Views:	2
Size:	12.4 KB
ID:	1391255
        Click image for larger version

Name:	i11.jpg
Views:	2
Size:	18.9 KB
ID:	1391256
        Attached Files
        Last edited by avr; 09-01-2014, 20:06.

        Comment


        • #5
          Các bước cần thiết có thể dùng để quan tâm đến ngọn lửa đã cháy lên như sau:

          Movement detection –Dò sự chuyển động
          RGB-Filter Intensity yellow-Lọc mạnh màu vàng
          Blob-border- Dò biên dạng khối
          Blob-size-định kích thước khối
          Blob-filter-Lọc khối
          Blob-tracking-theo dõi khối.
          Center of gravity- xác định tâm khối

          ms:
          http://mp3.zing.vn/bai-hat/Hai-Mua-N.../IWZB6AF7.html
          Attached Files

          Comment


          • #6
            .............
            Attached Files

            Comment


            • #7
              Nguyên văn bởi mars2012 Xem bài viết
              Mọi người cho mình hỏi, làm sao để xác định một hình vuông hay hình tam giác trong ảnh?
              Mình có nghĩ về việc dùng contours xác định đường viền rồi tìm số lượng cạnh của nó. Nhưng nếu như vậy thì nếu nó có 4 cạnh, làm sao biết nó sẽ là tứ giác thường hay hình vuông, hình chữ nhật??
              Mong mọi người giúp đỡ, mình mới làm quen với OpenCV thôi
              Bác thử sử dụng phương pháp tách biên, để lấy khung của hình thôi rồi đưa vào noron hay fuzy gì đó để nhận dạng.
              Tư vấn thiết kế hệ thống điện-điện tử theo yêu cầu.
              Tel: 0903 702 417. Email: web:

              Comment


              • #8
                đang làm 2 bài toán nhỏ:
                1.robot bám theo quả bóng(đã ok)
                2.nhận dạng khói (robot dập lửa)
                tất cả được thực thi trên nền nhúng (beaglebone black+linux) và viết bằng c++ all (opencv 2.x hỗ trợ c++ rất mạnh ,nhẹ nhàng hơn c rất nhiều) và làm cả 2 hướng :kinh điển+neural
                Ai quan tâm tham gia thảo luận nha!!!

                Comment


                • #9
                  Nguyên văn bởi nguyenhoanh Xem bài viết
                  đang làm 2 bài toán nhỏ:
                  1.robot bám theo quả bóng(đã ok)
                  2.nhận dạng khói (robot dập lửa)
                  tất cả được thực thi trên nền nhúng (beaglebone black+linux) và viết bằng c++ all (opencv 2.x hỗ trợ c++ rất mạnh ,nhẹ nhàng hơn c rất nhiều) và làm cả 2 hướng :kinh điển+neural
                  Ai quan tâm tham gia thảo luận nha!!!
                  bạn có thể cho mình xin mail hay là sdt được không.mình mới tìm hiểu opencv rất mong được sự giúp đỡ

                  Comment

                  Về tác giả

                  Collapse

                  mars2012 Tìm hiểu thêm về mars2012

                  Bài viết mới nhất

                  Collapse

                  Đang tải...
                  X