uEye için yeni HALCON arabirimi

HALCON uEye SDK nın 3.5 ve sonraki versiyonlarına uygun yeni bir arabirim (interface) çıkardı. Bilindiği gibi uEye gerek yenmi çıkardığı kameralar, gerek SDK sında yaptığı yeniliklerle 3.5 ve sonrası versiyonlarda (halihazırdaki son versiyon 3.70) büyük yenilikler getirmişti.

Bu yeni fonksiyonlar ve modellere HALCON içinden erişebilmek adına, yeni bir arabirim (interface) yayımlanması gerekiyordu ve 30 Ağustos itibariyle bu arabirim yayımlandı.

Mavis olarak, uEye kameralarına erişmek amacıyla, direk uEye ayar dosyası (ini) file ile çalıştığımızdan, bizim uygulamalarımız zaten uEye SDK nın yeni özelliklerini kullanabiliyordu. Bu yeni arabirim, uEye kameralarına HALCON un get_framegrabber_param ve set_frame_grabber_param fonksiyonlarını kullanarak erişen kullanıcılar için anlamlı olacak.

Yeni arabirim, kayıtlı (registered) kullanıcılar için MVTec web sayfasından ücretsiz indirilebilir.

Arçelik Buzdolabı İşletmesinde Karakter Okuma (OCR)

Mavis, Eskişehirdeki Arçelik Buzdolabı İşletmesinde, Karakter Okuma (OCR) çözümünü devreye almak üzere çalışmalara başladı.

Mavis olarak OCR (Optik Karakter Tanıma) üzerine hayli gelişmiş bilgi birikimi ve tecrübemiz ile kısa sürede sistemi devreye alacağımızı düşünüyoruz. Proje, daha önce Oyak-Renault ta kurmuş olduğumuz dingil üzerindeki yazıyı okuma projemize benzemekte olup kendine özgü bazı zorluklar içermektedir. Bunlar;

  • Okunacak karakterler bombeli (konkav) bir yüzey üzerinde yer almaktadır
  • Okunacak karakterler nokta vuruşlu bir makina ile yazılmıştır
  • Farklı modeller için karakterlerin yeri değişebilmektedir

gibi sayılabilir.

Mavis olarak, alınan görüntüler ve geliştirilen algoritmanın ekran görüntüleri aşağıdaki gibidir

Kompresörün yüzeyinin uEye kamera ile alınmış orijinal resmi. Resim alınmadan önce demo amaçlı olarak gidildiğinden, aydınlatma kullanılmamıştır. Kırmızı 10 x 10 led array kullanılarak aydınlatılması düşünülen yüzeyde yazı kalitesinin daha iyi elde edileceği hesaplanmaktadır.

Görüntü işleme teknikleri kullanarak önce önce filtreleme (karakteri meydana getiren noktalar ile resimdeki lekelerin ayıklanması) yapılır, sonra noktalar birleştirilir daha sonra birleşmiş noktalar karakter meydana getirecek şekilde genişletilir  (karakterler ortaya çıkartılır) Resimde her bir karakter ayrı bir renk ile gösterilmiştir.

Son olarak, iyi bir OCR yapabilmek için normalde (insan gözünde de olduğu gibi)beyaz zemin üzerinde siyah karakterlere dönüşüm yapılması gerekir. Yapay olarak (artificial) siyah beyaz binary (binImage) resim oluşturulur. Oldukça temiz ve filtrelenmiş olarak görünen bu resim artık kolaylıkla okunabilir (OCR edilebilir) OCR edilmiş sonuç ekrana yeşil olarak yazılmıştır.

Proje uygulama aşamasında, sistemin tetiklenmesi, aydınlatmanın devreye girmesi, işlem sonucunun hatta bildirilmesi (PLC işlemleri), veritabanına kaydetme vb. aşamalar da olacaktır. Mavis olarak benzer sistemleri kurduğumuzdan gerek yazılım, gerek donanım olarak tüm bileşenler hazır olarak bulunmaktadır.

Projeye ilişkin en sadeleştirilmiş HALCON kodunu aşağıda veriyorum. Aradaki kontrol ifadelerini (if), gelişmiş seçim parametrelerini, OCR train kodlarını ve try-catch yapı bloklarını kaldırdım. Olabildiğince yalın hale getirdim ki herhangi bir geliştirici (Halconist) tarafından okunması durumunda en anlaşılır şekilde olsun 😉 (Programın yine de düzgün ve sağlıklı olarak çalışmaktadır)

Aşağıdaki kodun çalışması için gerekli olan özgün resmi sayfanın en altında OzgunResim olarak bulabilirsiniz.

read_image (Image, 'C:/Projects/Demos/Arcelik/1.bmp')
*draw_rectangle1 (3600, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, 590, 400, 792, 705)
reduce_domain (Image, Rectangle, ImageReduced)
threshold (ImageReduced, Regions, 40, 255)
dilation_circle (Regions, RegionDilation, 3)
union1 (RegionDilation, RegionUnion)
smallest_rectangle1(RegionUnion, Row11, Column11, Row21, Column21)
connection (RegionUnion, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 90, 99999)
sort_region (SelectedRegions, SortedRegions, 'character', 'true', 'row')
copy_obj(SortedRegions, ObjectsSelected, 1, 6)
get_image_pointer1 (ImageReduced, _, _, Width, Height)
region_to_bin (SortedRegions, BinImage, 0, 255, Width, Height)
read_ocr_class_mlp ('Industrial.omc', OCRHandle)
do_ocr_multi_class_mlp (SortedRegions, BinImage, OCRHandle, Class, Confidence)
dev_set_color('green')
set_display_font (3600, 24, 'verdana', 'true', 'false')
set_tposition (3600, Row21+20, Column11)
write_string (3600, Class)

Özgün Resim (HALCON kodunda kullanılan)

Plastik Boru Kameralı Kalite Kontrolü

Mavis, Plastik enjeksiyon yöntemiyle üretilmiş ürünlerin (kutu, boru vb.) kamerayla kalite kontrol ve ölçümlerinin yapılmasına ilişkin çözümler sunmaktadır. Plastik enjeksiyon sektöründe güvenle çalışan bu uygulamalarımızı zamanla geliştirmekte, yeni yaklaşımlarla desteklemekteyiz.

Plastik boru kalite kontrolüne ilişkin alternatif bir yaklaşım : Polar Transform.

Yukarıdaki resimdekine benzer Plastik boru da;

  • Çapak Kontrolü
  • Çeperde Kesiklik Kontrolü
  • Renk Kontrolü
  • Conta Varlık Kontrolü
  • Enjeksiyon Hataları Kontrolü

gibi kontroller yapılmaktadır. Alternatif bir yöntem olarak; Dairesel şekli açıp yatay düzlemde, dörtgen tipinde bir geometriye dönüştürmek ve bunun üzerinde işlem yapmak işleri çoğu zaman çok daha kolaylaştırır.

Boru yüzeyinin uygun HALCON kodları yardımıyla yatay düzleme transform edilmiş hali

Borudaki kesikliğin bulunması artık gayet kolaylaşmış oldu. Kesikliğin yerinin belirlenmesi :

Son olarak, ters transform ile, gerçek görüntü üzerinde kesikliğin gösterilmesi :

Programın HALCON kodu aşağıdaki gibidir :

read_image (Image, '1c.bmp')
*draw_circle (3600, Row, Column, Radius)
Row := 518
Column := 648
Radius := 374
gen_circle(Circle1, Row, Column, Radius)
gen_circle(Circle2, Row, Column, Radius+100)
difference(Circle2, Circle1, RegionDifference)
reduce_domain(Image, RegionDifference, ImageReduced)
polar_trans_image_ext (ImageReduced, PolarTransImage, Row, Column, rad(0), rad(360), Radius - 5, Radius+125, 2000, 200, 'bilinear')
mean_image(PolarTransImage, ImageMean, 3, 3)
bin_threshold(ImageMean, Region)
difference(ImageMean, Region, RegionDifference1)
connection(RegionDifference1, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 500, 999999)
count_obj(ConnectedRegions, Number)
if (Number > 1)
    select_obj(ConnectedRegions, ObjectSelected1, 1)
    select_obj(ConnectedRegions, ObjectSelected2, 2)
    distance_rr_min(ObjectSelected1, ObjectSelected2, MinDistance, Row1, Column1, Row2, Column2)
    R := Row1 + (Row2-Row1)/2
    C := Column1 + (Column2-Column1) / 2
    dev_set_color('red')
    gen_circle(DCircle, R, C, 30)
    dev_set_color('green')
    disp_cross(3600, R, C, 24, 0)
    polar_trans_region_inv (DCircle, CodeRegionCircular, Row, Column, rad(0), rad(360), Radius-5, Radius+125, 2000, 200, 1280, 1024, 'nearest_neighbor')
    disp_message (3600, 'Çeperde Kesiklik', 'window', 10, 10, 'red', 'true')

    stop()
endif

Projede kullanılan orijinal resmi yüklemek için, galerideki 1c isimli resmi indirebilirsiniz…

million threshold

Yarısı Beyaz, Yarısı Siyah olan zemin üzerinde, gri renkli nesneyi seçmek için hangi threshold tipi en uygundur?

Alternatif bir yaklaşım olarak 2 defa üst üste çalıştırılmış bin_threshold, en etkili sonucu verecektir.

ÜStteki görüntüde, kırmızı dörtgen içindeki alana bin_threshold komutu uygulandığında;

Koyu pixelleri seçecektir. Biz, bu koyu pixeller içindeki, civatayı, yani gri bölgeyi seçmek istiyoruz. Bu durumda, Bu bölgeye 2. defa bin_threshold uygulandığında, gri bölge açık olarak kalacağından, gri bölge dışındaki siyah bölgeyi seçecektir. difference komutu ile siyah bölge dışlanıp, gri bölge seçilir.

En son, filtreleme komutları ile birlikte, tam olarak civata seçilmiş olur.

Tüm programın HALCON kodu aşağıdaki gibidir.


read_image (Image, 'civata.bmp')
draw_rectangle2(3600, Row3, Column3, Phi1, Length11, Length21)
gen_rectangle2 (Rectangle, Row3, Column3, Phi1, Length11, Length21)
reduce_domain (Image, Rectangle, ImageReduced)

bin_threshold(ImageReduced, Region1)
reduce_domain(ImageReduced, Region1, ImageReduced1)
gray_opening_shape(ImageReduced1, ImageOpening1, 1, 1, 'octagon')
bin_threshold(ImageOpening1, Region2)
difference(ImageOpening1, Region2, Region)

connection(Region, ConnectedRegions)
select_shape_std(ConnectedRegions, SelectedRegions, 'max_area', 70)
fill_up(SelectedRegions, RegionFillUp)
closing_circle(RegionFillUp, RegionClosing, 2)
opening_circle(RegionClosing, RegionOpening, 3)
connection(RegionOpening, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 20, 99999)
dev_display(Image)
dev_set_color('green')
dev_display(SelectedRegions)

ilk Bakışta HALCON 10 a

HALCON 10, birçok yeni özellikleri ile birlikte neredeyse hazır. Final Release olmadığı için, yorum yapmak için henüz erken olmakla birlike, HALCON 9.0.2 ye göre radikal bir değişimden bahsetmek zor. (HALCON 7 den HALCON 8 e geçiş, gerek HDevelop ortamı, gerek Engine kısmına yapılan değişiklikler ile ciddi bir ilermelemeydi. HALCON 9.0 a geçişte, HDevelop daha kullanışlı hale getirilmiş, COM türü bileşenlerden .NET arabirimine geçiş daha fazla desteklenmişti.)

Alpha versiyonun ilk testleri sırasında göze çarpan yenilikler

Hedevelop ortamı gerek yetenek gerek görsellik açısından daha da geliştirilmiş. Burada da radikal bir değişimden bahsetmek zor olmakla birlikte, getirilen yenilikler HDevelop kullanımını daha da zevkli hale getirmiş.

Measurement Assistant

Daha önceden var olan assistant pencerelerine yeni eklenen Measurement asisstant, ilk kullanımda tüm ölçüm işlemlerine hizmet edebilecek yetenekte görülüyor. özellikle Fuzzy measurement öğeleri içermesi, World coorditanes işlemlerini (px, mm) otomatik yapabilmesi gibi avantajlar, programcının işini olabildiğince hafifletmiş.

Editördeki Yenilikler

Editör, code insight kısmına yenilikler getirmiş. Daha önce 9.0.2 de getirilen yenilikler biraz daha iyileştirilmiş. Gelişmiş editörlerde (mesela Visual Studio) olduğu gibi değişkenleri de içeren daha zengin bir code insight seçeneği gelmiş.

Runtime Yenilikleri

Program output windows yardımıyla, çalışan her bir satırı ve detay bilgilerini artık yeni bir pencerede izleyebiliyoruz. Statusbar da hint olarak görünen bilgiler, daha da zenginleştirilerek yeni pencereye taşınmış. Artık hangi operatör bloğunun ne kadar sürede çalıştığını anlamak vb. işlemler için Count_seconds ile milisaniyeleri saymaya son 🙂

Diğer tüm yenilikleri MVTec kendi sitesinden duyuracağı için Alpha test sonuçlarına burada ayrıntılı olarak girilmemiştir. Zaten MVTec bu aşamada HALCON 10 lisansının dağıtımını da sınırlamıştır.

3D Eşleştirme, Robotik

Mavis, Teknodrom firması ile başlattığı robot yönlendirme ve parça bulma yakalama ayıklama çalışmalarına yeni bir boyut ekledi. Robotun yakalayacağı parçaları öğrenebilmesi için son derece pratik bir arayüz geliştirildi.

Sistemin Çalışması

Öncelikle kameranın dış etkenlerden (değişken ışık kaynakları, gün ışığı vb.) etkilenmemesi için düzgün aydınlatılmış bir ortam oluşturulur. Bu ortam robotun çalışmasını engellemeyecek şekilde yapılmalıdır.

1. İşlem olarak, kameraya yakalayacağı parçalar öğretilir. Her parça farklı bir yerinden tutulmak istenebilir. Tutma noktası parçanın belirli köşeleri, uçları gibi daha önceden tahmin edilemeyen bir yer olabilir. Robot operatörü, parçanın ideal tutma noktasını,  kameralı görüntü işleme yazılımında bir değişiklik istemeden (programlamaya ihtiyaç olmadan) kolayca gösterebilmelidir. (Programa  tutma noktası öğretilmelidir) Programda hiç değişiklik yapılmadan son derece kolay bir arabirimde (UI) parçalar sisteme tanıtılabilmelidir. Mavis’in kendi geliştirdiği sistem bu sorunu en kolay şekilde çözmüştür.

Menüden “yeni parça öğretme” işlemi seçildiğinde, kameranın altında bulunan parçanın resmi ekranda belirir. “Öğretme İşlemine Başlamak İstiyor musunuz?” sorusuna Evet dendiğinde, interaktif bir şekilde tutma noktası kullanıcıdan alınır.

Öğretilecek parçanın en ideal parça olmasına özen gösterilir. Buna rağmen ekranda parça sınır çizgileri belirlenir ve kenar iyileştirme algoritmaları ile çapak ve pürüzler ön işlemden geçirilerek temizlenir.

Bu noktada sistem parçanın modellenmiş ve temizlenmiş halini model kodu ile kaydeder. Herhangi bir görüntü işleme programı ile (Paint, Photoshop vb.) bu modellenmiş fotoğraf üzerinde daha da hassas çalışmalar yapılabilir. (Filtreleme, yuvarlatma, kenarları düzleştirme vb.)

Üstelik, tüm bu işlemler gerçek parça resmi yerine parçanın direk CAD çizimi baz alınarak ta yapılabilir.

Program çalışma anında, öğretilen parçayı tanıyacak ve tutma noktasının koordinatlarını ve açılarını robota iletecektir.

Sistem tüm robotlarla haberleşebilecek altyapıya göre tasarlanmıştır. Testler ve uyarlamalar Teknodrom firmasında Motoman Robot kullanılarak yapılmıştır. Haberleşme olarak seri port ve dijital Input/output modülü kullanılmıştır. Ethernet haberleşme için de arayüz geliştirilmiştir. Sistem Fanuc, kuka gibi robotlar ile de çalışabilecek şekildedir. Test ve geliştirmeler; Teknodrom firmasından Emrah Hünerlitürkoğlu, Mavis firmasından Mustafa Sarı ve Hüseyin Çelik tarafından gerçekleştirilmiştir.

Delphi içinden uEye Kamera Kullanımı

iDS uEye kameralar, son derece güçlü bir SDK ile birlikte gelmektedirler.  Güçlü yanlarını genel başlıklar altında toplarsak

  • 32 bit ve 64 bit işletim sistemleri için %100 destek
  • Tüm platformlar için %100 destek (Native Windows, .NET, Linux, Web)
  • ActiveX, OCX bileşenleri olarak kullanabilme
  • Native .NET kütüphanesi
  • Tüm görüntü işleme arabirimleri (HALCON, neurocheck, cognex…)
  • Birçok derlenmiş ve çalışan örnek uygulamalar

vb. sayılabilir.

.NET ortamında uygulama geliştirmek için, C# ve onun güçlü IDE si VS yi kesinlikle tavsiye ederim. Buna rağmen, Delphi ile uygulama geliştirmenin cazibesi de hala devam etmektedir. Bunları da kendime göre kısaca sıralarsam;

  • En hızlı Native Win32 uygulama
  • Delphi 1 den itibaren standartlaşmış güçlü ve oturmuş IDE
  • ObjectPascal dilinin getirdiği güç artı kolaylık
  • Birçok VCL, hazır kod, library vb. vb.
  • Açıklanamayan Delphi bağlılığı/sevgisi

Delphi 1 den Delphi 2010 versiyonuna kadar Delphi kullanmış biri olarak, laf açılmışken susmam son derece zor olduğundan, lafı burada keserek, Delphi içinden uEye kameralarının kullanımına geçiyorum.

1. Öncelikle uEye Driverları ve programları Full olarak kurulur. (www.ueyesetup.com)

2. uEye Demo programı ile kameranın düzgün olarak çalıştığı test edilir.

3. Şimdi Delphi Çalıştırılır (Resimler Delphi2009 programından alınmıştır. Delphi5 ten itibaren aynı mantık geçerli olduğundan tüm versiyonlar için burada anlatılanlar geçerli olacaktır)

ilk iş olarak, diğer tüm ActiveX bileşenlerinde olduğu gibi, uEye ActiveX bileşeni Delphi içinden yeni bir component olarak install edilir.

Bunun için Component ana menüsünden, “Import Component” menü öğesi seçilir. Gelen ekranda “Import ActiveX Control” radio button işaretlenir ve aşağıdaki ekran gelir.

Bu ekranda uEyeCam ActiveX Control bulunur ve istenilen Delphi component paletine yüklenir. (Ben Additional sekmesini seçtim. ActiveX ya da System gibi palet ler daha okunaklı görünebilir. İStediğinizi seçebilirsiniz zaten, dilerseniz yeni bir palet te oluşturabilirsiniz)

Sonraki ekranda Create New Unit” seçerek ilerledim ve nihayetinde Deplhi bana yeni ActiveX bileşenimin Additional paletine başarıyla yüklendiğini söyledi.

Artık delphi içinden kullanıma hazırım.

Normal form tasarlar gibi çalışıyorum artık. Additional paletinden uEye ActiveX bileşenini formun üzerine koydum ve istediğim gibi ölçeklendirdim.

sonrasında işime yarayacak bazı butonlar koydum. Kamera Aç, Kapat, Resmi Farklı Kaydet vb. gibi.

“Yükle” butonuna

uEyeCam1.InitCamera(0);

kodunu ekliyorum. Ve daha fazla kod yazmadan hemen F9 a basıyorum ve ta taaa… Yine Delphi hızı ve mucizesi ekranda beliriyor…

Dilersem, fotoğrafı farklı kaydetmek için;

uEyeCam1.SaveImage(”);

kodunu kullanabilirim. Parametee olarak ” kullanırsam, kaydedeceğim yeri seçmem için Save Dialog görüntülenecektir. Belirli bir yere kaydetmek istiyorsam, bunu parantez içinde belirtmem yeterlidir.

Kamera ile işim bittiğinde (Formu kapatırken vs.)

uEyeCam1.ExitCamera;

kodunu çağırmam yeterli olacaktır.

Hepsi bu kadar kolay…

uEye ActiveX bileşeninin yüzlerce fonksiyonu mevcuttur ve bunlar Help kısmında son derece detaylı açıklanmıştır. İhtiyaç duyulabilecek hemen her fonksiyon gerçek bir Alman mühendisliği inceliğiyle kodlanmıştır. Programcıya son derece kolay bir kodlama işi kalmış, geliştirilen uygulama diğer Delphi uygulamalarında olduğu gibi, “En Hızlı” ve “En Şık” olarak harddisk te yerini almıştır.

Bir tüyo : Ekranda karşınıza çıkan default iDS uEye görüntüsünden hoşlanmıyorsanız, kendi marka ve logonuzu içeren bitmap dosyayı C:\Windows\System32 klasörüne uEyeCamOcx.bmp ismiyle kaydedin 😉

Uygulama başlar başlamaz sizi bu ekran karşılayacaktır.

10/10/10

Özellikle 3D Vision alanında getirdiği sayısız yeniliklerle birlikte, 10 Ekim 2010 tarihinde HALCON 10 yayımlanmış olacak. İlk edinilen bilgilere göre; HALCON10, daha hızlı, daha az sistem kaynakları tüketen, daha gelişmiş ve daha kullanışlı bir sürüm olacak. MVTec, HALCON 10 sürümünün ilk duyurumunu 8-11 Haziran 2010 tarihinde Münih te düzenlenecek olan AUTOMATICA fuarında yapacağını açıkladı. MVTec, yeni versiyonda en çok dikkate değer geliştirmelerin 3D Vision ve Matching alanında olacağını belirtti.

HALCON 9.0.2

HALCON 9.0.2 versiyonunu yayımladı. Yeni versiyonda yapılan iyileştirmelerden ana başlıklar

  1. HDevelop için Geliştirilmiş Resim Alma Sihirbazı (Image Acquisition Assistance)
  2. 1D ve 2D barkod lar için geliştirilmiş okuma desteği
  3. Yüksek kontrastlı (High contrasts) resimlerde artırılmış doğrulukta ölçüm
  4. GigEVision arabiriminde kayda değer geliştirmeler
  5. Rapor edilmiş (bilinen) bug lar için düzeltmeler…

2009 Stuttgart Vision fuarında, MVTec tarafından verilen yemek sırasında özellikle 3. madde üzerinde durulmuştu. Benim de şahsen yoğun olarak kullanmayı düşüneceğim bir özellikti (Sadece bu özellikten dolayı 9.0.2 yi bekliyordum desem yeridir) Hassas ölçüm uygulamalarımızda, sıklıkla kullandığım edges_subpix yapıları, bundan sonra çok daha kesin sonuçlar verecek.  Bilindiği gibi, contour_processing işlemlerinde, foundation modülünde olduğu gibi threshold, var_threshold vb. fonksiyonlar kullanarak, kontrolü programcıya bırakmak yerine, üst düzey fonksiyonlar, programcıya fazla iş düşürmeden kendi hesabını yapmaktaydı. Ölçüm uygulamalarımızda özellikle vurguladığımız subpixel precision hassasiyeti, 9.0.2 versiyonu ile birlikte, kenar çizgisinin çok belirgin olmadığı durumlarda bile kesin sonuçlar verecek. Eski versiyonda, edges_subpix fonksiyonunda sobel_fast filtresine ait resmin gray değeri (byte tabanlı resimler için) 127 nin üzerindeyse (uint tabanlı resimlerde 32767 nin üzerindeyse),  kesinlik azalıyordu. Yeni versiyonda bu durum giderildi. Gerçi bu durum, kenar bulunmadan önce (edges_subpix işlemi yapılmadan önce) boundary ile resmi çevreleyen sınır bulunup, dilation_circle ile sınırlar bir parça genişletilip, elde edilen yeni sınır değerlerinin yapay olarak (artificially) koyulaştırılması (emphasize vb. fonksiyonlar ile) ve son olarak koyulaşmış kesin sınır alanına edges_subpix uygulanması ile giderilebiliyordu. Mavis olarak, sıklıkla kullandığımız yöntem de bu doğrultudaydı. 9.0.2 versiyonu bu konuda, biraz daha sade kod dizilimi kazandıracak bize. Son kullanıcı tarafında hassas ölçüm sonuçlarının bu anlamda değişeceğini beklemiyoruz. (Burada yeniden belirtmek isteriz ki, Mavis Kameralı Hassas Ölçüm uygulamaları, piyasada var olan en hızlı ve kesin kameralı online ölçüm uygulamalarıdır)

HALCON 9.0.2 hakkında daha detaylı bilgi için

http://www.mvtec.com/halcon/download/common/release-notes-9.0.2.html#Features_9_0_2

adresine bakabilirsiniz.