2014-09-23 9 views
5

Nie potrzebuję obrazu z progiem. Chcę próg. Znalazłem to w OpenCV.jaka jest funkcja znalezienia progu otsu w emgu cv?

cv::threshold(orig_img, thres_img, 0, 255, CV_THRESH_BINARY+CV_THRESH_OTSU); 

Czy istnieje odpowiednik w EmguCv. Z góry dziękuję.

PS. Muszę użyć tego progu do wykrycia kanalika krawędziowego.

+0

Nie mam pojęcia o emgu, ale * wartość zwracana * progu cv :: to próg otsu w powyższym przypadku. (więc prawdopodobnie nadal musisz wywoływać próg cv ::, nawet jeśli wyrzucisz thresh_img) – berak

+0

Dzięki! Nazwałem funkcję progową przez CvInvoke i działa – Siddarth

Odpowiedz

8

Możesz polecić ten kod dla detektora Auto Canny Edge!

Image<Gray, byte> Img_Source_Gray = Img_Org_Gray.Copy(); 
Image<Gray, byte> Img_Egde_Gray = Img_Source_Gray.CopyBlank(); 
Image<Gray, byte> Img_SourceSmoothed_Gray = Img_Source_Gray.CopyBlank(); 
Image<Gray, byte> Img_Otsu_Gray = Img_Org_Gray.CopyBlank(); 

Img_SourceSmoothed_Gray = Img_Source_Gray.SmoothGaussian(3); 
double CannyAccThresh = CvInvoke.cvThreshold(Img_EgdeNR_Gray.Ptr, Img_Otsu_Gray.Ptr, 0, 255, Emgu.CV.CvEnum.THRESH.CV_THRESH_OTSU | Emgu.CV.CvEnum.THRESH.CV_THRESH_BINARY); 
double CannyThresh = 0.1 * CannyAccThresh; 
Img_Otsu_Gray.Dispose(); 

Img_Egde_Gray = Img_SourceSmoothed_Gray.Canny(CannyThresh, CannyAccThresh); 
imageBox2.Image = Img_Egde_Gray; 
+1

Dzięki. To działa!. Nie wiedziałem, że możesz wywoływać funkcje OpenCV bezpośrednio za pomocą CvInvoke. – Siddarth

+0

Wiem, że ten post jest dość stary, ale czy ktoś zna kod równoważności dla EmguCV 3.x? Ponieważ nie zawiera funkcji CvInvoke.cvThreshold i enum Emgu.CV.CvEnum.THRESH. –

Powiązane problemy