2010-03-07 38 views
6

Fotoğraf makinesinden beslemeyi yakalayan, beslemedeki kenarları algılayan ve daha sonra orijinal beslemeyi görüntüleyen bir C# masaüstü uygulaması (Emgu CV sarıcılı) yapmaya çalışıyorum (renkli) kenarları ile - bir şekilde birleştirilmiş renkli besleme ve kenarları. Feed'i kameradan başarıyla aldım. Ayrıca, Canny yöntemini kullanarak feed'deki kenarları da tespit ediyorum. Sorun şu ki, orijinal besleme renkteyken kenarların algılanması gri tonda (siyah arka plan, beyaz kenarlar) yapılır. Birleştirilmiş beslemenin çıktısını almak için renk beslemesinin kenar besleme ile nasıl birleştirileceğini bilmek istiyorum.Algılanan kenarları Emgu CV'de bir renk yakalamaya nasıl birleştirirsiniz?

Emgu Özgeçmişinde Kopyalama yöntemini denedim ancak siyah arkaplan ve doğru renkli kenarlar çıktı (örneğin, kameranın önünde kırmızı bir küp tuttum, küpün kenarları kırmızı renkli) .

Herhangi bir yardım

çok takdir edilmektedir.

cevap

6

Tamam, etrafta biraz dolaştıktan sonra çözümü buldum. Hile tersine bir Canny sonucu ve renk beslemede Ve işlevini kullanmaktır. İşte benim Application.Idle:

private void processFunction(object sender, EventArgs e) { 
     Image<Bgr, Byte> frame = c0.QueryFrame(); 
     Image<Gray, Byte> grayscale = frame.Convert<Gray, Byte>(); 
     grayscale = grayscale.Canny(new Gray(0), new Gray(255)).Not(); //invert with Not() 
     frame = frame.And(grayscale.Convert<Bgr, Byte>(), grayscale); //And function in action 
     imageBox1.Image = frame; 

    } 
ile çalışan işlevim.
İlgili konular