GRIP’den Kod Oluşturma

GRIP Kod Üretimi

Görsel algoritmanızı roboRIO veya Raspberry PI gibi küçük bir işlemci üzerinde çalıştırırken, OpenCV’yi GRIP ek yükü olmadan doğrudan işlemci üzerinde çalıştırmanız önerilir. Bunu kolaylaştırmak için GRIP, oluşturduğunuz ardışık düzen için C ++, Java ve Python’da kod üretebilir. Oluşturulan bu kod, robot projenize eklenebilir ve doğrudan mevcut robot kodunuzdan çağrılabilir.

Kameralar veya görüntü dizinleri gibi giriş kaynakları ve Ağ Tabloları gibi çıktı adımları oluşturulmaz. Kodunuz görüntüleri OpenCV matları olarak sağlamalıdır. RoboRIO’da, CameraServer sınıfı bu formattaki görüntüleri sağlar. Sonuç almak için, kontur x ve y değerleri gibi sonuç değerlerini almak için yalnızca oluşturulmuş alıcı yöntemlerini kullanabilirsiniz.

Kod Oluşturma

Kod oluşturmak için “Araçlar> Kod Oluştur’’ seçeneğine gidin. Bu, GRIP ardışık düzenindeki adımları gerçekleştiren bir C ++, Java veya Python sınıfı oluşturmanıza olanak tanıyan bir kaydetme iletişim kutusu açar.

../../../../_images/generating-code.png

Önceden var olan bir projede kullanılacak kod üretiliyorsa, ardışık düzeni kaydetmek için ilgili bir dizin seçin.

  • ** C ++ Kullanıcıları **: ardışık düzen sınıfı bir başlık ve uygulama dosyasına bölünmüştür

  • ** Java Kullanıcıları **: Oluşturulan sınıfta paket bildirimi bulunmadığından, dosyanın kaydedildiği dizine uyması için bir bildirim eklenmelidir.

  • ** Python Kullanıcıları **: modül adı sınıfla aynı olacaktır, bu nedenle import ifadesi “Pipeline import Pipeline’’ gibi olacaktır.

Oluşturulan Kodun Yapısı

Pipeline:
  // Process -- this will run the pipeline
  process(Mat source)

  // Output accessors
  getFooOutput()
  getBar0Output()
  getBar1Output()
  ...

Ardışık Düzeni Çalıştırma

Ardışık Düzeni çalıştırmak için, bağımsız değişken olarak kaynaklarla (web kameraları, IP kamera, görüntü dosyası vb.) İşlem yöntemini çağırın. Bu, ardışık düzen içindeki her işlemin çıktılarını `` getFooOutput ‘’ yöntemleriyle ortaya çıkaracaktır.

Sonuçları Alma

Kullanıcılar, ardışık düzendeki her adımın çıktılarını alabilirler. Bu işlemlerin çıktılarına, ilgili erişimcilerin aracılığıyla erişilebilir. Örneğin:

İşlem

Java / C ++ alıcı

Python değişkeni

RGB Eşiği

” getRgbThresholdOutput “

” rgb_threshold_output ‘’

Blur-Bulanıklık

” getBlurOutput ‘’

” blur_output ‘’

CV Aşınması

” getCvErodeOutput ‘’

” mcv_erode_output ‘’

Kontürleri Bulma

” getFindContoursOutput ‘’

” find_contours_output ‘’

Kontürleri Filtrele

” getFilterContoursOutput ‘’

” filter_contours_output ‘’

Bir işlem ardışık düzen içinde birden çok kez görünürse, bu işlemlerin erişimcileri o işlemin numarasına sahiptir:

İşlem

Hangi görünüm

Accessor-Erişimci

Blur-Bulanıklık

First-Birinci

” getBlur0Output ‘’

Blur-Bulanıklık

Second-İkinci

” getBlur1Output ‘’

Blur-Bulanıklık

Third-Üçüncü

” getBlur2Output ‘’