Matematik ve programlama gerçek hayatta ne işe yarar:emeksensin.com ve rengarenk

0
FZ
Emeksensin.com'da en son yaptığımız yeniliğin adı Rengarenk. Rengarenk özelliği ile eserleri renklerine göre arayabiliyorsunuz. Buradan deneyip görebilirisiniz: http://www.emeksensin.com/rengarenk. Renk arama özelliği dünyada az sitede görebildiğimiz bir özellik çünkü bunu yapabilmek için bazı zor problemleri çözmek gerekiyor. İlk problem eserin resmindeki binlerce renkten önemlilerini seçmek. Bunu yapan birçok görüntü işleme algoritması var. Biz OpenCV kütüphanesini kullanarak bir gerçekleme yaptık.
İkinci problem renkleri insanın algısına göre gruplamak. Henüz bu konuda uzmanlar tek bir fikirde anlaşmış değiller fakat temelde netleşen bazı kurallar var. Uygulamada renklerin RGB değerlerini bu kurallar ışığında kodlayıp insan algısını yansıtan bir renk uzayına haritalamak gerekiyor.

İlk iki problem çözüldükten sonra, önümüzde bir uygulama problemi var: Üç boyutlu renk uzayında bir bölgeyi arıyoruz. Her boyutu ayrı kaydedip sorguda üç değişkenin sınırlarını veriyorsanız ve üstelik renkleri ilişkisel veri tabanına kaydettiyseniz üzgünüm bu uçak düşer. Neyse ki aynı problem iki boyutlu uzayda coğrafi veritabanlarında daha önce çözülmüş. Hilbert kodlamasını ve özel amaçlı veri tabanımızı (YBDBdoo) kullanarak sorgularımızı kabul edilebilir hızlarda yapıyoruz. Hilbert dönüşümü için kullandığımız uzaygezen projesini çok başarılı bulduk.

Gerisini zaten biliyorsunuz: Basit bir renk paleti, ajax ve emeksensin'in alıştığımız hızlı ve sade kullanıcı arayüzü.

Görüşler

0
Dite
Ve nitekim "pek bi zor" problemleri çözmeyi başaramamışsınız. Bkz: Kötü seçim örneği.
0
Tarık
matematik ve programlama gerçek hayatın %98. geriye kalan yemek ve sex.

güzel proje, derin fikirler.
0
mdakin
Hilbert egrilerinin kullanilmasi guzel ve ilginc. Uzaygezen'i kullanan ilk acik kodlu proje bu sanirim.

Ilk aklima gelen soru, renk uzayini biraz kucuk tutarak daha basit ve bellekte calisan bir sey de cozum olmaz miydi? Sonucta sadece 3 boyut var. Cok safca bir yaklasimla, her renk bileseni -varsayalim r,g,b- icin 4-5 bit ayirsaniz ve bu 12 veya 15 bitlik degerleri bir dizinin indeksi olarak kullanip dizinin gozlerine de o rengi tasiyan resimlerin ID'lerini yerlestirseniz. Daha sonra arama yaparken aranan renge ait goze (belli bir hata toleransi kullaniliyorsa bazi araliklara) bakmak yeterli olacaktir. Tabi burada resim x renk kombinasyonlarinin rahatca bellege sigacagi varsayimini yapiyorum. Eger bellege sigmasza berkeleydb, Tokyo file cabinet tarzi basit bir key-value veritabani da kullanilabilir.. Bu cok basit ve kaba bir hack ama calisir gibi gorunuyor.

Elbette ki Hilbert egrileri veya diger benzerlik arama mekanizmalari daha genel amacli cozumler sunacaktir. Ozellikle ilerde resimlerle ilgili daha farkli ozellikleri de hesaba katinca, yani boyut sayisi ve uzayin buyuklugu arttigi zaman.
0
mdakin
Kucuk duzeltme:
- Proje acik kodlu degilmis
- Arayuzdeki renk secenegi az oldugu icin her halukarda bir kup icerisinde kup arama seklinde oluyor, yine de uzay kucukse, benzeri bir hack ise yarayacaktir. Bu tur durumlarda brute force yaklasimlari gecmek zor olabiliyor.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Sun ve Microsoft Web Servisleri İçin Kapışırken Borland Yapacağını Yaptı

FZ

Sun Microsystems ve Microsoft firmaları en hızlı, en güzel web servisi geliştirme araçlarını ben sunarım şeklinde kapışadursunlar, efsanevi Borland firması gene yapacağını yaptı ve web servisi geliştirmek için araçlar içeren Delphi 6 adlı ürününü piyasaya sürdü.

Programlama Dilleri

tongucyumruk

Programlama dilleri, hergün onları kullanıyoruz. Çalışmadığı zaman kötü dil oluyorlar, çalışınca biz yetenekli programcılar oluyoruz. Buna rağmen hepsi de sessiz sakin işini yapıyor. Peki ya bu kadar sessiz, sakin olmasalardı, dile gelselerdi ne olurdu diye düşünenler için Cem Yılmaz'ın deyişiyle burada düşünülmüşü var.

ClusterKnoppix İle Kendi Süperbilgisayar Kümenizi Kolayca Kurun

FZ

Büyük bir okul ya da şirket ağınız var, ya da bir yerden ucuza düşük model bir sürü ikinci el bilgisayar buldunuz (40$'a Pentium 166 MMX, 32 MB ana hafıza falan) ve bunların atıl kalmasına gönlünüz el vermiyor. Sağda solda "clustering" diye de tabir edilen kümeleme diye bir kavram duyuyorsunuz ancak bir sürü bilgisayarı paralel olarak belli bir problem üzerinde çalıştırmanın uzmanlık derecesinde bilgi gerektirdiğini düşünüyorsunuz... ve... yanılıyorsunuz! Her derde deva ClusterKnoppix ile çok güçlü paralel bilgi işlem merkezi kurmanız işten bile değil ;-)

Hala tereddüt edenlerin iştahını kabartmak için şu ekran görüntülerine bakmalarını tavsiye ederim: 12 adet bilgisayarın merkezi kontrolü, openMosixview, 12 meşgul bilgisayarın gözetlenmesi, openMosixmigmon.

Editörün Notu: Bildiğim kadarı ile İzmir´li üyemiz decaf (aka realist) bu konu ile ilgileniyordu, kendisinden en kısa sürede konu ile ilgili lezzetli bir makale beklediğimizi belirtmeme gerek yok sanırım ;-)

Sizin E-Posta Sunucunuz Hangisi?

FZ

Web sunucu olarak Apache´nin ezici önderliğini Netcraft sağolsun biliyoruz peki ya posta sunucu alanındaki yarış ne alemde? Hangi e-posta sunucu yüzde kaçlık bir kullanıma sahip? Internet´in olmazsa olmazı e-postayı bize taşıyan bu ağır yük işçileri hangi yazılımları tercih ediyor?

Falko Timme de bunu merak etmiş ve Netcraft kadar kaynağa sahip olmamakla birlikte 100.000´in üzerinde e-posta sunucunun hangi yazılımı kullandığını tespit etmiş. Şu anda görülen o ki sendmail ve postfix açık ara önde. Detaylar için e-posta sunucu anketine bakabilirsiniz.

NetLogo 3.0 Çıktı

FZ

Multi-agent programlama ve modelleme için en çok kullanılan yazılım geliştirme ortamlarından biri olan NetLogo'nun 3.0 sürümü duyuruldu.

Bu sürümde üç boyutlu grafikler, Sistem Dinamikleri Modelleme, gelişmiş grafik özellikler mevcut. 3D graphics, a System Dynamics Modeler, improved turtle pens, improved BehaviorSpace, and other enhancements. Here's a complete list of changes. Try it and let us know what you think. Detaylı değişiklik listesine buradan erişebilirsiniz. Ayrıca sistemde kullanılabilen modelleri web tarayıcınızda da görmeniz mümkün. (Dikkat, tüm gününüzü alabilir, dalıp gidebilirsiniz, tehlikeli :)