Thông báo

Collapse
No announcement yet.

Sử dụng OpenCV trong Visual C++ 2008

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

  • #61
    Nguyên văn bởi compvis Xem bài viết
    @vinachip: đây là một dạng cấu trúc (có thể định nghĩa theo dạng class - lớp) mà trong c,c++ người ta gọi nó là "Linked List". Cấu trúc này được sử dụng với dạng dữ liệu phức hợp và vì thế nó cũng rất phức tạp trong định nghĩa và sử dụng. Nếu bạn có kiến thức tốt về c,c++ thì bạn sẽ hiểu rõ. Bạn có thể tham khảo các link dưới đây:

    http://www.inversereality.org/tutori...nkedlists.html
    http://locklessinc.com/articles/flexible_lists_in_cpp/
    http://www.dreamincode.net/code/snippet82.htm
    ... and so on...
    You could Google it


    Trong OpenCV, sử dụng con trỏ CvSeq như một mảng để chứa các phần tử. Để hiểu rõ nhất về CvSeq, bạn hãy làm một ví dụ nhỏ với cvFindContours. Một link tôi cho là khá hay về cvFindContours mà bạn có thể tham khảo:
    http://guitarhero-opencv.googlecode....n/trunk/cv.cpp

    cảm ơn compvis đã giúp đỡ, đang tìm hiểu thêm! vẫn chưa thực sự rõ nhưng cũng đã xác định được cái hướng đi rồi! thanks bạn!!

    Comment


    • #62
      Sử dụng Template Matching trong OpenCV 2.1 với Visual C++ 2008

      Trong bài viết này tôi giới thiệu đến các bạn cách sử dụng Template Matching trong OpenCV 2.1 với visual C++ 2008. Chức năng này rất có ích trong việc nhận dạng đối tượng.
      Click image for larger version

Name:	2011-06-15_163714.png
Views:	1
Size:	940.3 KB
ID:	1347763
      IplImage *res_img;
      CvPoint minloc, maxloc;
      double minval, maxval;
      int src_width, src_height;
      int mask_width, mask_height;
      int res_width, res_height;

      // get image's properties
      src_width = src_img->width;
      src_height = src_img->height;
      mask_width = mask_img->width;
      mask_height = mask_img->height;
      res_width = src_width - mask_width + 1;
      res_height = src_height - mask_height + 1;

      //create new image for template matching computation
      res_img = cvCreateImage(cvSize( res_width, res_height ), IPL_DEPTH_32F, 1);

      //choose template matching method to be used
      //cvMatchTemplate(src_img, mask_img, res_img, CV_TM_SQDIFF );
      //cvMatchTemplate(src_img, mask_img, res_img, CV_TM_SQDIFF_NORMED );
      //cvMatchTemplate(src_img, mask_img, res_img, CV_TM_CCORR );
      cvMatchTemplate(src_img, mask_img, res_img, CV_TM_CCORR_NORMED );
      //cvMatchTemplate(src_img, mask_img, res_img, CV_TM_CCOEFF );
      //cvMatchTemplate(src_img, mask_img, res_img, CV_TM_CCOEFF_NORMED );


      cvMinMaxLoc(res_img, &minval, &maxval, &minloc, &maxloc, 0);

      /*draw red rectangle*/
      cvRectangle(src_img, cvPoint( maxloc.x, maxloc.y ), cvPoint( maxloc.x + mask_width, maxloc.y + mask_height ), cvScalar( 0, 0, 255, 0 ), 5, 0, 0 );


      Các bạn cần chú ý là kết quả matching tốt nhất ứng với các giá trị min (minval-giá trị này càng nhỏ thì kết quả càng chính xác, minloc-vị trí matching) khi sử dụng CV_TM_SQDIFF, và ứng với các giá trị max (maxval-giá trị này càng lớn thì càng chính xác, maxloc-vị trí matching) khi sử dụng CV_TM_CCORR hoặc CV_TM_CCOEFF.
      Trong trường hợp trên, tôi sử dụng CV_TM_CCORR_NORMED, do đó khi vẽ hình chữ nhật phải dùng maxloc để vẽ.
      Khi sử dụng chương trình trong file đính kèm, các bạn có thể click nhiều lần vào nút Matching để nhận được nhiều kết quả hơn.
      Hy vọng chương trình sẽ có ích cho các bạn muốn làm nhận dạng đối tượng.

      Comment


      • #63
        Mình không hiển thị được ảnh trong control picture được, bạn giúp mình với!!
        Mình đang làm đề tài về xử lý ảnh, muốn hiển thị hình ảnh capture từ camera trực tiếp lên form riêng chứ ko theo cái windows form nhưng không biết làm sao để liên kết một biến kiểu dữ liệu riêng của opencv là IplImg với control picture trong MFC, một cách khác là mình lưu cái ảnh lại rồi load lên nhưng vẫn không xong! bạn có kinh nghiệm về MFC giúp mình với nhé!!

        Comment


        • #64
          Nếu bạn sử dụng Window Form Application thì có thể tham khảo tại đây: http://www.dientuvietnam.net/forums/...l-C-2008/page4. Trong phần Display Image Captured From Camera in Picture Box in Windows Forms Application có đầy đủ code của chương trình.
          Còn về lập trình trong MFC thì mình chưa làm bao giờ nên cũng chưa tìm hiểu qua. Bạn có thể tìm thêm trên mạng.

          Comment


          • #65
            Nguyên văn bởi vinachip Xem bài viết
            ...không biết làm sao để liên kết một biến kiểu dữ liệu riêng của opencv là IplImg với control picture trong MFC, một cách khác là mình lưu cái ảnh lại rồi load lên nhưng vẫn không xong! bạn có kinh nghiệm về MFC giúp mình với nhé!!
            Handle sự kiện OnPaint, Invalidate.... của Picture Control trong MFC và làm như hướng giẫn mình tại Hiển thị hình ảnh lên Dialog của MFC

            Comment


            • #66
              thanks alll...

              Comment


              • #67
                chao a nthung2002!!! e dang viet phan mem chup anh tu camera. A cho e hoi, phan mem a dung camera dung card PCI dc k ? e dang dung camera card PCI.

                Comment


                • #68
                  Chào anh !!! phan mem a co ho tro camera dung card PCI k vay ?

                  Comment


                  • #69
                    Chào bạn,

                    Mình thường làm việc trên camera kết nối với máy tính qua cổng USB. Còn qua cổng PCI thì mình chưa làm qua nên cũng chưa biết rõ.

                    Tuy nhiên ở lab mình có một số bạn làm việc với camera kết nối qua card mạng thì vẫn có thể sử dụng OpenCV được.

                    Bạn có thể dùng một chương trình đơn giản để kiểm tra thử xem sao.

                    Comment


                    • #70
                      OpenCvSharp

                      Em dang viet ứng dụng sử dụng OpenCvShap (C#). Chạy trên laptop có webcame thì dc. Nhưng khi kết nối với Camera USB thì giá trị Null( nó báo lỗi OpenCv.Invoke ...). Các anh trên diễn đàn chỉ em cách khắc phục nha. Em cảm ơn

                      Comment


                      • #71
                        Bạn đã cài driver cho USB camera chưa?

                        Nguyên văn bởi phuoclong108 Xem bài viết
                        Em dang viet ứng dụng sử dụng OpenCvShap (C#). Chạy trên laptop có webcame thì dc. Nhưng khi kết nối với Camera USB thì giá trị Null( nó báo lỗi OpenCv.Invoke ...). Các anh trên diễn đàn chỉ em cách khắc phục nha. Em cảm ơn

                        Comment


                        • #72
                          Dear you
                          1. Kiểm tra chắc chắn rằng webcam bạn hoạt động tốt và ko sử dụng trong ứng dụng khác
                          2. Bạn xem lại địa chỉ của Webcam trong code (Chắc là cái này)

                          Nguyên văn bởi phuoclong108 Xem bài viết
                          Em dang viet ứng dụng sử dụng OpenCvShap (C#). Chạy trên laptop có webcame thì dc. Nhưng khi kết nối với Camera USB thì giá trị Null( nó báo lỗi OpenCv.Invoke ...). Các anh trên diễn đàn chỉ em cách khắc phục nha. Em cảm ơn
                          Bể học vô biên

                          Comment


                          • #73
                            Bạn ơi, ko hiểu tại sao mình tạo Form, viết code và lúc debug thì nói báo lỗi này, mình ko hiểu tại sao. Ai biết thì nói cho mình nha. Thank...
                            Error 1 error C3862: 'cvRound': cannot compile an unmanaged function with /clrure or /clr:safe c:\program files\microsoft visual studio 9.0\vc\include\opencv\cxtypes.
                            Error 2 error C3645: 'cvRound' : __clrcall cannot be used on functions compiled to native code c:\program files\microsoft visual studio 9.0\vc\include\opencv\cxtypes.h
                            Error 3 error C3862: 'CV_XADD': cannot compile an unmanaged function with /clrure or /clr:safe c:\program files\microsoft visual studio 9.0\vc\include\opencv\cxoperations.hpp
                            Error 4 error C3645: 'CV_XADD' : __clrcall cannot be used on functions compiled to native code c:\program files\microsoft visual studio 9.0\vc\include\opencv\cxoperations.hpp

                            Comment


                            • #74
                              giúp mình tý...mình đã xem hướng dẫn show ảnh trong MFC của bạn...nhưng mình chưa hiểu lắm...do chưa làm quen nhiều với MFC nên rất bỡ ngỡ...bạn có thể hướng dẫn chi tiết 1 tý các bước để load ảnh vào picture control ko.....mình đã có ảnh pImage....... chuyển qua bitmap như bạn sau đó show window ..khúc đó mình ko hiểu ...ko bit dùng picture control chỗ nào......làm sao show ra được...hức hức.....

                              Comment


                              • #75
                                Chào bạn,
                                Theo mình thì bạn thiết lập thiếu thông số khi sử dụng opencv. Để khắc phục lỗi này bạn làm như sau:

                                Project-->Properties(Alt+F7)-->Configuration Properties-->General-->Common Language Runtime Support-->Common Language Runtime Support(/clr)
                                Ngoài ra, nếu bạn chưa khai báo câu lệnh #pragma comment(lib, "cv210d.lib") v.v... thì bạn còn cần vào: Linker-->Input-->Additional Dependencies gõ cv210d.lib;cxcore210d.lib;highgui210d.lib
                                Nguyên văn bởi quochuydttn Xem bài viết
                                Bạn ơi, ko hiểu tại sao mình tạo Form, viết code và lúc debug thì nói báo lỗi này, mình ko hiểu tại sao. Ai biết thì nói cho mình nha. Thank...
                                Error 1 error C3862: 'cvRound': cannot compile an unmanaged function with /clrure or /clr:safe c:\program files\microsoft visual studio 9.0\vc\include\opencv\cxtypes.
                                Error 2 error C3645: 'cvRound' : __clrcall cannot be used on functions compiled to native code c:\program files\microsoft visual studio 9.0\vc\include\opencv\cxtypes.h
                                Error 3 error C3862: 'CV_XADD': cannot compile an unmanaged function with /clrure or /clr:safe c:\program files\microsoft visual studio 9.0\vc\include\opencv\cxoperations.hpp
                                Error 4 error C3645: 'CV_XADD' : __clrcall cannot be used on functions compiled to native code c:\program files\microsoft visual studio 9.0\vc\include\opencv\cxoperations.hpp

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                                  Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                                  hôm nay, 14:51
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                                  Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                                  hôm nay, 14:39
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                                  Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                                  hôm nay, 14:28
                                • bqviet
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi bqviet
                                  Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                                  Hôm qua, 20:26
                                • mèomướp
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi mèomướp
                                  Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                                  Hôm qua, 12:32
                                • vi van pham
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi vi van pham
                                  Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                                  Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                                  20-02-2025, 21:31
                                • bqviet
                                  Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                  bởi bqviet
                                  Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                                  20-02-2025, 17:22
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.

                                  Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...
                                  20-02-2025, 11:52
                                • vi van pham
                                  Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                  bởi vi van pham
                                  Uống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?

                                  Cái khó bó cái...
                                  19-02-2025, 23:05
                                • nhathung1101
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi nhathung1101
                                  Nếu chú tâm thì học tiếng Việt cũng đủ rồi, thừa sức làm việc rồi.

                                  Học tiếng Anh cũng chỉ phụ trợ để đọc thêm tài liệu, hướng dẫn.

                                  Nhưng có hiểu điều đó không mới là vấn đề. Khi mà học ngoại ngữ để đi đạp xích lô đón khách???...
                                  19-02-2025, 21:27
                                Đang tải...
                                X