Smoothing with opencv and delphi

Güncelleme: bu smooth kodu, opencv2.0 da hata vermekte.(C++ ve pythonda da hata veriyor.). Bu nedenle opencv2.1 yada opencv1.0/1.1 kullanın.

var
  img1,dst:PIplImage;
begin
  //hh
  img1:=cvLoadImage('sa.jpg',1);
  dst:=cvCreateImage(cvGetSize(img1),8,3);
  cvSmooth(img1,dst,3,3);
  //cvResize(img1,dst);
  cvNamedWindow('s',1);
  cvShowImage('s',img1);
  cvNamedWindow('sm',1);
  cvShowImage('sm',dst);

Delphi ile Opencv : Adding (blending) two images using OpenCV

Opencv’nin şu anki dökümantasyonu opencv öğrenebilmek için yeterli durumdadır. Tıkla

Blending (2 görüntünün iç içe geçmesi düşünülebilir) örneği aynı dökümantasyonda var. Biz bunu delphi ile yapacağız.

Gerekli araçlar:

  1. opencv 2.0
  2. delphisciencelibrary
  3. Delphi 7 veya rad studio

opencv’nin headerlarının (newopencv2.pas) çevrildiği kod ayarlarım şu şekilde, kaynak kod aşağıdadır.

Yazının devamı için tıklayınız

Opencv Python : Pyramid Lucas Kanade : Optik Akış

Dün gece bir hatayla uğraştım. tam 6 saat. halen anlamışda değilim. 3 saat uykuyla durmama rağmen didindim uğraştım. sonuç çıktı. Kodları c++ tan pythona çevirdim.

Optik akış denklemi cisimleri hızını yönünü bulabiliriz.

   '''
Created on Nov 15, 2011

@author: barakli.net
'''
#!/usr/bin/python
import cv

MAX_CORNERS = 500
imga=cv.LoadImage("imgc.png",cv.CV_LOAD_IMAGE_GRAYSCALE)
imgb=cv.LoadImage("imgc1.png",cv.CV_LOAD_IMAGE_GRAYSCALE)

img_sz=cv.GetSize(imga)
win_sz=10

imgc=cv.LoadImage("OpticalFlow1.png",cv.CV_LOAD_IMAGE_UNCHANGED)

eig_image=cv.CreateImage(img_sz, cv.IPL_DEPTH_32F, 1)
temp_image=cv.CreateImage(img_sz, cv.IPL_DEPTH_32F, 1)

corner_count=MAX_CORNERS

cornersA=[]

cornersA=cv.GoodFeaturesToTrack(imga, eig_image, temp_image,MAX_CORNERS,0.01, 5.0, None,3,0,0.04)

cornersA=cv.FindCornerSubPix(imga,cornersA,(win_sz,win_sz),(-1,-1),(cv.CV_TERMCRIT_ITER | cv.CV_TERMCRIT_EPS,20,0.03))

pyrA=cv.CreateImage(img_sz,8,1 )
pyrB=cv.CreateImage(img_sz,8,1)

cornersB,features_found,feature_errors=cv.CalcOpticalFlowPyrLK(imga, imgb, pyrA, pyrB, cornersA, (win_sz,win_sz), 5, (cv.CV_TERMCRIT_ITER | cv.CV_TERMCRIT_EPS,20,0.03), 0)

print "features errors count==>>"+str(len(feature_errors))
print "features found count==>>"+str(len(features_found))

for k in range(len(feature_errors)):
    if (features_found[k]==0) or (feature_errors[k]>550):
        print("Error is %f/n",feature_errors[k])
        continue
    print ("Got it /n")
    p0=cv.Round(cornersA[k][0]),cv.Round(cornersA[k][1])
    p1=cv.Round(cornersB[k][0]),cv.Round(cornersB[k][1])
    cv.Line(imgc,p0,p1,cv.CV_RGB(255,0,0),2)

cv.namedWindow("ImageA",0)
cv.namedWindow("ImageB",0)
cv.namedWindow("Opflow",0)

cv.ShowImage("ImageA",imga)
cv.ShowImage("ImageB",imgb)
cv.ShowImage("Opflow",imgc)

cv.WaitKey()
cv.DestroyAllWindows()

şş

Opencv >> Python, Delphi, .Net, Java , C++

Bu beş programlama dili ile opencv kodu yazabilirsiniz.
Delphi kütüphanesi , Opencvcharp ile .Net ve mono , Python , Javacv ve c++

Bunlar arasında en rahat kullanılabilen kanımca Python, büyük avantaj ve dezavantaj sağlayan değişken türü belirtmeden kod yazabilmek. Buradaki dezavantaj ise pythonda değişken türü bazen tür tür atamalarında problem çıkartması ve sizi bazen nerede bu hataaa diye kızdırmasıdır.

.Net çiler için zaten ortam mükemmel. Javacv gelişimini ve dökümantasyonunu hızlıca tamamlamakta.

Delphiciler için ortam biraz daha zor. İyi bir pointer cı olmanız gerektirmekte. bu arkadaş delphi ile güzel işler çıkartmakta.

Derindelimavi zaten işin üstadı sayılır.hem c++ profosyonelliği ve .net çalışmalarını hemde akademik yazılarını çok beğenmekteyim. İnşallah çalışmalarına devam eder.

Ben bundan sonraki kodları çoğunlukla delphi ve python ile hazırlayacağım.

Opencv ile güzel çalışmalar dilerim.

Hazırladığım eski dökümanları burada yayınlayıp artık akademik tabanlı ve açıklamalı opencv çalışmaları göreceksiniz.

DNS Değişikliği İndirme Hızını Etkiler Mi?

OpenDNS ya da Google DNS gibi genel DNS servisleri kullanıcılarına daha güvenli ya da hızlı servis sunmayı önerebilir ama bazı durumlarda kullandığınız internet servis sağlayıcısının DNS servisleri, size daha hızlı indirme indirme imkanı tanıyabilir. Neden mi?

Amazon, Akamai vb içerik dağıtım ağlarını bilirsiniz. Bunlar yerkürenin birçok noktasında konuşlanmış veri merkezlerine sahiptirler. Kullanıcılarına, coğrafi olarak en yakın merkezden içerik sunmayı amaçlarlar. Mesela Adobe, dosyalarını Akamai’nin merkezlerinde tutar. Siz 1 GB’lık bir Photoshop programını Adobe.com adresinden indirmek isterseniz, bu dosya Akamai’nin size en yakın olan veri merkezinden ulaştırılır.

Bu içerik dağıtım ağları sizin coğrafi olarak bulunduğunuz konumu tespit edebilmek için bilgisayarınızın IP adresini kullanırlar. Ancak genel DNS servislerini kullanıyorsanız, bu servislerinin IP adresinizi maskelemesinden dolayı CDN sizin gerçek lokasyonunuzu bilemeyebilir. Böylece bir serverdan size dosya sunmak isterse bunu size en yakın sunucudan gerçekleştiremeyebilir ve dosyanın indirilme zamanı uzayabilir.

CDN’ler size en kısa yoldan mı dosya sunuyor?

Microsoft, CNN, YouTube gibi çok büyük sitelerin CDN hizmetlerini kullandığını düşününce, bu sitelerden hizmet alırken en yakındaki sunucudan hizmet alıp almadığınız önemli olabiliyor. Peki bunu nasıl öğreneceğiz?

1. Adım: http://networking.ringofsaturn.com/Tools/dig.php sitesini açıyoruz. Oraya dilediğimiz siteyi yazıp enterlıyoruz. Ben kendi sitemi sitemi yazdım.

Görüldüğü gibi “ANSWER SECTION” kısmında IP adreslerini elde ettik. Şimdi bu IP adresine sahip sunucunun nerede bulunduğunu öğreneceğiz.

2. Adım: www.maxmind.com/app/locate_demo_ip adresine gidiyoruz. Boşluğa IP adreslerini yazıp “Lookup IP Adresses” butonuna tıklıyoruz.

Sonuçlarda görüldüğü üzere benim sitem şu anda bana Amerika’daki sunuculardan servis ediliyor. Demekki kendi sitem için kullandığım CDN olan Cloudflare’in Türkiye’ye en yakın sunucusu Amerika’da 😀

Google’ın İlk Tabletinin Satışı Temmuza Ertelendi.

Google’ın tablet sektöründeki ilk atılımı olan Android’li araçları, en erken temmuzda karşımızda olacak. Bunun nedeni ise tabletin satış fiyatını düşürebilmek. Önceden mayıs ayında çıkacağı söylenmişti, mevcut tasarımın da aslında mayıs ayında piyasaya sürülmek için hazır olduğu da belirtiliyor.

Mountain View şehrinde bulunan Google’ın ana laboratuvarlarının bazı tasarım değişiklikleri yapacağı ve şu an için 249 dolar olan fiyatı daha da aşağı çekme planları yaptığı belirtiliyor. Google, bu proje kapsamında Asustek ile çalışıyor. Tabletin özellikleri de 7-inç ekran, Nvidia Tegra 3 quad-core işlemci ve Wi-Fi. Android 4.0 altında çalışıyor. Google-Asustek tabletinin 249 dolarlık fiyatı, önceden düşünülen 149-199 dolar gibi fiyatlara göre yüksekti. Bir diğer 7-inç ekrana sahip olan ve 199 dolardan satışa sunulan Amazon’un Kindle Fire tableti bu ekran boyutu ve fiyatıyla Google’a sağlam bir rakip olacağa benziyor.

Bu arada Apple da, iPad mini adını verdiği 7.85 inçlik daha küçük bir tablet yapmayı planlıyor. Tabi Google daha erken davranabilir. Bir diğer görüşe göre de Google, tableti temmuzdan sonrasına ertelemek istiyor. Böylece Android’in yeni versiyonu olan Jelly Bean sürümü bu tabletlerde kullanılabilir olacak. Ama bu olasılık pek mümkün görülmüyor. Çünkü şu anki tabletler Android 4.0 sürümüne göre tasarlandı ve eğer yeni yazılım kullanılırsa tabletin çıkış tarihi daha da uzayabilir gibi görülüyor.

Ayrıca üretici firmalar, ortak çalışan iki firmanın adının birlikte kullanılmasının(Google-Asustek gibi) satışları artıracağı kanaatinde. Android tabletlerdeki bu pazarlama stratejisinin ileride Samsung, Acer gibi diğer firmaların Google ile çalışmasının kapılarını aralayacağı düşünülüyor.

Kaynak: http://www.theverge.com/2012/4/6/2929707/google-tablet-july-launch-exclusive

Çeviri: Serdar Baraklı

Google’dan “Arttırılmış Gerçeklik” Gözlüğü

Aslında yazımıza “Arttırılmış Gerçeklik” deyiminin tanımıyla başlamamız uygun olacaktır. Bu deyim bilgisayar araştırmalarının bir dalı olup gerçek dünya ile bilgisayar tabanlı verilerin kombinasyonunu sağlayan; bilgisayar grafiklerinin gerçek zamana aksettirildiği sistemi anlatmaktadır.

Önümüzdeki birkaç ay içinde bir kafeye girdiğinizde orada sanki Star Trek’ten fırlamış, çok fantastik ve fütüristik bir gözlük takan birini görürseniz endişelenmeyin. O kişi, şirketin yeni teknoloji gözlüklerini test eden bir Google çalışanı olabilir.

Google bugün gizli girişimlerinden birisi olan Project Glass adını verdiği projeden birkaç detayı paylaştı. Bu gözlükler, şirketin takılabilen ya da giyilebilen ilk bilişim sistemi diyebiliriz.

Gözlükler şu an için satılık değil. Ama halka açık mekanlarda test edildiğini belirtelim.

Google Plus sosyal ağında paylaşılan bir mesajda, şirketin laboratuvarı olan Google X’te çalışan Babak Parviz, Steve Lee ve Sebastian Thrun takipçilerine Project Glass’ın prototipi hakkında fikirlerini sordular. Steve Lee normalde Google’da ürün müdürü olarak sorumlu ve yazılım haritalama, mobil haritalama gibi alanlarda çalışıyor. Bu projede de yazılım içeriklerinden ve gözlüklerin konum tabanlı bakış açısı sistemlerinden sorumlu.

Google tarafından gösterilen prototipte, gözlük çok gösterişli ve iyi tasarlanmış görünüyor. Gözlük, verileri lense yansıtıyor ve gözlüğü takan kişinin ses komutlarıyla mesaj alıp gönderebilmesini sağlıyor. Aynı zamanda gözlükte kamera da var. Video kaydı yapıp fotoğraf çekebilmenizi sağlıyor.

Şubat aynın sonlarına doğru bu gözlüklerin tanıtımı yapılmış ve Android platformu altında çalışacağı söylenmişti.

Google tarafından bugün yayınlanan ve aşağıda yer verdiğimiz videoda Project Glass’ın potansiyel kullanım alanları görülebiliyor. Bir adam, New York City caddelerinde geziniyor, arkadaşlarıyla iletişim kuruyor, haritaları ve bilgileri görebiliyor ve o andan bir fotoğraf alabiliyor. Ve günün sonunda kız arkadaşıyla video-chat yapıyor. Tüm bunların hepsi bu gözlük aracılığıyla oluyor.

Project Glass, varsayım olarak Project Contact Lens gibi bir mantıkla da çalışabilirdi. Google çalışanlarından olan ve aynı zamanda Washington Üniversitesi’nde profesör olan Babak Parviz, mikro düzeydeki teknolojiler ile biyoloji arasında ilişki kuran biyonanoteknoloji alanında uzman birisi. Son zamanlarda küçücük bir kontakt lens yapmıştı. Bu lens elektronik parçalar içeriyordu ve görüntü ögesi olan pikselleri kişinin gözüne düşürebiliyordu.

Google’ın bu gözlüğünün önceki tanıtımlarında prototiplerin tanıtımında kullanılan gözlüklerin çalışma mekanizması farklıydı. Ayrıca oradaki tanıtımda bahsi geçen gözlükler son derece hantal ve kullanışsızdı. Ama bugünkü tanıtımda gözlükler çok daha zarifti. Şu an üzerinde çalışılan çok çeşitli şekillerdeki gözlüklerin var olduğu da biliniyor.

Aslında birçok kişinin bu teknoloji hakkında çekinceleri de olabilir. Çünkü bu sistem kişinin günlük yaşantısına çok fazla müdahale edebilir. Özellikle çok fazla bilginin kişiye yansıtılması sonucu kişinin gerçek hayatta dikkati dağılabilir.

Project Glass; Kaliforniya’nın Mountain View şehrinde bulunan Google’ın ana kampüsündeki Google X ofislerinde geliştirilen birçok projeden yalnızca birisi. Burada mühendisler ve bilim adamları geleceğe ışık tutmak için robotlar ve uzay araçları üzerinde çalışmalarını devam ettiriyorlar.

Kaynak: http://bits.blogs.nytimes.com/2012/04/04/google-begins-testing-its-augmented-reality-glasses/

Çeviri: Serdar Baraklı

Pandora’yı Proxy Kullanmadan Dinleyin.

Pandora Radio, internetteki en ünlü çevrimiçi müzik istasyonlarından birisi ve favori şarkınızı ya da grubunuzu yazdığınızda benzer müzikleri size sunan bir proje. Pandora’nın reklam destekli ücretsiz versiyonu ve reklamsız premium versiyonu var.

Pandora müzik servisi şu an için sadece Birleşik Devletler sınırları içerisinde bulunan internet kullanıcıları için erişime açık. Lisans anlaşmaları gibi bir takım nedenlerden dolayı A.B.D haricindeki ülkelerden erişilmeye çalışıldığında aşağıdaki gibi bir uyarı veriyor.

A.B.D dışında Pandora’yı nasıl dinleyebiliriz?

Aslında birçok yöntem mevcut. Pandora, kendisine erişim sağlayan kullanıcıların fiziksel lokalizasyonunu tespit etmek için IP adreslerini kullanıyor. A.B.D dışındaki bir kullanıcı proxy hizmetlerini ya da VPN sistemlerini kullanarak fake A.B.D. IPleri aracılığıyla sisteme erişebiliyorlar.

Tabi bunlar biraz uğraş gerektiriyor ve uygun proxy hizmetleri bulmak her zaman mümkün olmuyor. Bunlardan daha basit bir yöntemimiz daha var:

1) Eğer Firefox kullanıyorsanız; HTTPS Everywhere eklentisini kurun ve tarayıcınızı yeniden başlatın.

2) Eğer Google Chrome kullanıyorsanız; HTTPS Enforcer eklentisini kurun, eklentinin simgesinden eklentiyi aktif hale getirin.

3) Şimdi Pandora web sitesini açın. Artık diğer servisler gibi Pandora’ya da A.B.D. dışından rahatça ulaşabiliyor olmalısınız.

Müzik yayını, eklentiyi aktif halde bulunduğu sürece devam edecektir. Ayrıca, Firefox kullanıyorsanız; eklentinin varsayılan ayarları Pandora’yı rahatça kullanabilmenizi sağlayacaktır.

Bu tür HTTPS ilişkili eklentiler; Pandora gibi HTTPS sistemini destekleyen sitelerde, internette güvenli gezinme sistemi HTTPS’yi aktif hale getirecektir. Bu yüzden eğer http://pandora.com adresine giderseniz otomatik olarak https://pandora.com adresine yönlendirileceksiniz. Bundan dolayı IP tabanlı filtreleme sistemi, Pandora’ya güvenli protokol aracılığıyla erişen yerler için inaktif halde olacaktır.

Kaynak: http://www.labnol.org/internet/access-pandora-music-anywhere/20976/

Çeviri: Serdar Baraklı

Japon Bilim Adamı Örümcek Ağından Keman Teli Yaptı.

Örümcekten aşırı derecede korkan bir insan olarak, bu 8 bacaklı korkunç yaratıkların güzel müzik sesleri oluşturmak için kulllanılması aslında hoşuma gitti diyebilirim. Japon bilim adamı Shigeyoshi Osaki, nephila maculata türündeki örümceğin ağ ipinden, kemanda kullanılmak üzere tel yapmasını başardı.

Osaki, örümceklerin ağ ipleri konusunda dünyada en uzman kişilerden sayılabilir. 35 yıl emek verdiği bu alanda protein bazlı ipliklerin kimyasal bileşimleri hakkında çok sayıda şey öğrendi. Özellikle son 10 yılda örümcek ağı ipliğinden keman teli yapma konusunda araştırmalarını devam ettirdi.

İyi bir keman telinin dayanıklılığı ve elastikiyetinin nasıl olması gerektiği konusunda eğitimler aldı ve bu özellikleri örümceğin ürettiği iplikçiklere transfer etmek için çalışmalarını sürdürdü. Tabi bu kolay bir süreç olmadı. Osaki, örümceklerin anormal uzunlukta iplikçik üretmelerini sağlamayı ve bu iplikçiklerden tel meydana getirmeyi öğrenmek zorundaydı. Sonuç olarak sabrı ve çalışmalarının meyvesini aldı. Tanıtım amaçlı olarak keman teli üretmeyi başardı. En kalın tel 15000 iplikçikten oluşuyor, o da 5000 iplikçikten oluşan 3 tane demetin biraraya getirilmesiyle oluşuyor.

Örümceğin yaptığı iplikçiklerden üretilen keman tellerinin, normal çelik tellere ya da naylon tellere güçlü bir alternatif olacağı aşikar. Tabi Osaki’nin bu tellerinden alabilmek çoğu müzisyen için biraz pahalı olabilir. Ama o, bu tellerin seri üretimine geçebilmenin yollarını arıyor ama yine de Wal-Mart gibi büyük mağazalar zincirlerinde yakın zamanda satışlarının yapılabilmesine pek de ihtimal vermiyor.

Kaynak: http://www.geek.com/articles/geek-cetera/japanese-scientist-spins-spider-silk-into-violin-strings-2012036/

Çeviri: Serdar Baraklı

Marlin Dosya Gezgini Kurulumu

Marlin Dosya Gezgini; ammonkey tarafından oluşturulan, Nautilus Elementary’den esinlenerek kodlanmış GTK3 tabanlı dosya yöneticisidir. Aynen tarayıcılardaki gibi yeni sekme şeklinde gezgine, çoklu görünüm moduna, tek tıklama ile dosya açma seçeneğine, araç çubuklarını düzenlemek için çoklu seçeneklere sahip. Marlin; hızlı kullanımı kolay ve en önemlisi Unity ile sağlam bir entegrasyona sahip.

Bu yazımızda Nautilus’a alternatif olan Marlin Dosya Gezgini’nin nasıl yüklendiğine bakacağız.

Yazının devamı için tıklayınız

Toplam 12 sayfa, 5. sayfa gösteriliyor.« İlk...34567...10...Son »