2015-10-24 23 views
6

OpenCV, "Structured Forests for Fast Edge Detection" (2013)'da P. Dollár ve C. Zitnick tarafından belirtilen rasgele orman tabanlı yaklaşıma dayanarak StructuredEdgeDetection uygular. Yazarlar, an implementation for Matlab'u yayınladılar ve ayrıca her ikisi de BSDS500 veri kümesine dayanan önceden hazırlanmış bir model içeren one for Python da var.OpenCV'nin yapılandırılmış kenar detektörü için model dosyası

OpenCV uygulaması pretrained modeli eksik gibi görünüyor ve ben de beklemediği sunan tek yapıcısı ne biçim ortaya çıkarmak edemiyorum:

Ptr<cv::StructuredEdgeDetection> createStructuredEdgeDetection(String model)
Sadece uygun yapıcı
Parametreler: modeli - model dosya adı

Dokümantasyon ayrıca OpenCV uygulamasının nasıl eğitileceğini açıklamıyor, ben de kaldım. karanlıkta oldukça.

Özetlemek için OpenCV uygulaması nasıl kullanılır? Eğitimli bir model var mı? Değilse, OpenCV kullanarak nasıl eğitilir?

cevap

8

this model, opencv_extraximgproc test verilerini kullanarak kullanabilirsiniz.

Kendi modelinizi eğitmek istiyorsanız, OpenCV tutorials üzerindeki yönergeleri uygulayabilirsiniz.

Resim:

enter image description here

Kenarlar:

enter image description here

Kodu:

#include <opencv2\opencv.hpp> 
#include <opencv2\ximgproc.hpp> 

using namespace cv; 
using namespace cv::ximgproc; 

int main() 
{ 
    Ptr<StructuredEdgeDetection> pDollar = createStructuredEdgeDetection("path_to_model.yml.gz"); 

    Mat3b src = imread("path_to_image"); 

    Mat3f fsrc; 
    src.convertTo(fsrc, CV_32F, 1.0/255.0); 

    Mat1f edges; 
    pDollar->detectEdges(fsrc, edges); 

    imshow("Image", src); 
    imshow("Edges", edges); 
    waitKey(); 

    return 0; 
} 
+0

Yardımlarınız için teşekkürler çok, sadece sert, bilgi mevcut _is_ görünüyor açıkça yapılandırıldığından beri bulmak için. – Nit

İlgili konular