folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ & Opencv & Baduk(Go)



C++ & Opencv & Baduk(Go)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DeadSoul
    DeadSoul's avatar
    Kayıt Tarihi: 12/Mayıs/2012
    Erkek

    Öncellikle selamlar hocamlar, baştan söyleyeyim opencv hakkında bilgim yok. Yapmak istediğim uygulama board game olan go'yu içeriyor.

    Go'da oyun biterken kimin kazandığını anlamak için şöyle bi yol izliyoruz... Beyaz taşların çevrelediği alanlar şekilde kare ile işaretlenmiş, siyah taşların çevrelediği alanlar üçgen ile işaretlenmiş(normal tahtada tabiki böyle bişi yok, o karelerin ve üçgenlerin üzerinde durduğu keşisim noktalarını sayıyoruz). En sonunda kimin çevrelediği alan daha fazlaysa oyunu o kazanıyor(alanlar içerisinde kalan diğer renkten taşların olması durumu var şuanlık bunu es geçiyorum sonraki aşama o).

    (araya not oyunun temellerini öğrenmek istiyorsanız: http://playgo.to/iwtg/turkish/ şöyle etkileşimli bir web site mevcut gayet güzel anlatıyor)

    Velhasıl fotoğrafta gördüğünüz tahta 13*13 boyutunda normalde 19*19 tahtalarda oynuyoruz. Telefondan çektiğim bi fotoğrafı uygulamaya atıp bana çıktı olarak beyazın çevrelediği alanı ve siyahın çevrelediği alanı vermesini istiyorum. Bunun için neleri öğrenmem gerekiyor araştıracağım teknik terimler nelerdir, kısaca benim için yol planını anlatacak biri var mı?

    C++ ile yazacağım, opencv hakkında vereceğiniz her türlü iyi yazılmış tutorial makbule geçer ama önceliğim yol haritası.

    Teşekkürler.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Bunun için OpenCV şart değil. Furrier dönüşümleri ile herhangi bir dilde yapabilirsin. Önce siyah beyaz çıktısını alacaksın tahtanın yuvarlarlakları kenar bulma formülü vs var. Gürültüleri vs giderip sonuca ulaşabilirsin.

    Anahtar kelime Image Processing Fourier Transform


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Böcüklerin Efendisi
    krypt
    krypt's avatar
    Kayıt Tarihi: 05/Mart/2004
    Erkek

    http://tomasm.cz/imago_files/go_image_recognition.pdf

     

    Konu hakkında tez yazmışlar. İçinde bazı programların linkleri de mevcut.


    while (1<2)
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DeadSoul
    DeadSoul's avatar
    Kayıt Tarihi: 12/Mayıs/2012
    Erkek

    hocamlar çok teşekkürler ikinizi de öptüm

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek
    MhmdAlmz bunu yazdı

    Bunun için OpenCV şart değil. Furrier dönüşümleri ile herhangi bir dilde yapabilirsin. Önce siyah beyaz çıktısını alacaksın tahtanın yuvarlarlakları kenar bulma formülü vs var. Gürültüleri vs giderip sonuca ulaşabilirsin.

    Anahtar kelime Image Processing Fourier Transform

    :)) Tekerlegi tekrar icad etsin yani :)

    Sen dinleme bu arkadasi hocam. Oturup bunu tek basina kodlamaya calisirsan cok eziyet cekersin. :D ( bu arada @MhmdAlmz gecen konunda bana da tesekkur etmisin rica ederim :) )

    Sahne ile ilgili belli constraintler(turkce tam karsiligi gelmedi aklima) olursa daha rahat halledersin.
    Go tahtasi hep sari mi olacak mesela?

    Veya masanin duracagi zeminin rengi belli olsa daha net sonuclar elde edebilirsin. Ama her yerde calissin istiyorum diyorsan o biraz daha zor olacaktir.

    Genel olarak izleyecegin yol su sekilde.

    Resmi renge gore filtreden gecir. (tahtayi zeminden ayirmak icin.)
    Sonra kontur veya cizgi bul

    Kontur buluyorsan poligona fit etmeye calis (approx polydp gibi bi fonksiyonu vardi)
    Cizgi bulduysan cizginin kesisimlerini bul.

    Bu sekilde elinde koseler olmus olacak

    Harris corner detector diye bi algoritma var ama genelde cok fazla kose buldugu icin senin senaryolarda guzel calismayacaktir.

    Neyse efendim koseleri bulduktan sonra resmin o koselere gore homografisini alacaksin. Bu sayede artik tahtaya tepeden bakiyor olacaksin

    Sonrasinda siyah ve beyaz icin fhresholddan gecirip taslarin lokasyonlarini cikartican.


    Taslari cikarttiktan sonra morfolojik islemlerle birbirine baglayip tekrar kontur alip icte kalan alani falan hesaplayabilirsin zannimca.

    Tabi bu son basamak biraz zahmetli olabilir, su an kafamda boyle bir yol var ama cikan sonuca gore arada baska filtreler islemler vs uygulanabilir.

     

    Isin icinden cikamayip vazgecersen haber ver, fikrini calip mobil uygulama yapabilirim :D

    Kolay gelsin simdiden :))

     


    There are 10 types of people in the world. Those who knows binary and those who dont...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DeadSoul
    DeadSoul's avatar
    Kayıt Tarihi: 12/Mayıs/2012
    Erkek
    NmC bunu yazdı
    MhmdAlmz bunu yazdı

    Bunun için OpenCV şart değil. Furrier dönüşümleri ile herhangi bir dilde yapabilirsin. Önce siyah beyaz çıktısını alacaksın tahtanın yuvarlarlakları kenar bulma formülü vs var. Gürültüleri vs giderip sonuca ulaşabilirsin.

    Anahtar kelime Image Processing Fourier Transform

    :)) Tekerlegi tekrar icad etsin yani :)

    Sen dinleme bu arkadasi hocam. Oturup bunu tek basina kodlamaya calisirsan cok eziyet cekersin. :D ( bu arada @MhmdAlmz gecen konunda bana da tesekkur etmisin rica ederim :) )

    Sahne ile ilgili belli constraintler(turkce tam karsiligi gelmedi aklima) olursa daha rahat halledersin.
    Go tahtasi hep sari mi olacak mesela?

    Veya masanin duracagi zeminin rengi belli olsa daha net sonuclar elde edebilirsin. Ama her yerde calissin istiyorum diyorsan o biraz daha zor olacaktir.

    Genel olarak izleyecegin yol su sekilde.

    Resmi renge gore filtreden gecir. (tahtayi zeminden ayirmak icin.)
    Sonra kontur veya cizgi bul

    Kontur buluyorsan poligona fit etmeye calis (approx polydp gibi bi fonksiyonu vardi)
    Cizgi bulduysan cizginin kesisimlerini bul.

    Bu sekilde elinde koseler olmus olacak

    Harris corner detector diye bi algoritma var ama genelde cok fazla kose buldugu icin senin senaryolarda guzel calismayacaktir.

    Neyse efendim koseleri bulduktan sonra resmin o koselere gore homografisini alacaksin. Bu sayede artik tahtaya tepeden bakiyor olacaksin

    Sonrasinda siyah ve beyaz icin fhresholddan gecirip taslarin lokasyonlarini cikartican.


    Taslari cikarttiktan sonra morfolojik islemlerle birbirine baglayip tekrar kontur alip icte kalan alani falan hesaplayabilirsin zannimca.

    Tabi bu son basamak biraz zahmetli olabilir, su an kafamda boyle bir yol var ama cikan sonuca gore arada baska filtreler islemler vs uygulanabilir.

     

    Isin icinden cikamayip vazgecersen haber ver, fikrini calip mobil uygulama yapabilirim :D

    Kolay gelsin simdiden :))

     

    Hocam çok teşekkürler böyle uzun açıklayıcı bir post için, eccük biraz bişiler okuyup araştırmam gerekiyor ki onlarıda mesajlarınızda buldum zaten, geriye kalan öğrenme ve uygulama aşaması olacak. Önce programı halledip daha sonra mobile dökeceğim aklımda bu vardı zaten belki cloud gibi bir sistemde çalıştırırım. İşin içinden çıkarım diye düşünüyorum ama eccük biraz fazla zamanımı alabilir tabi şu sıralar boş vaktim çok ben ufaktan başlıyım :D

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Böcüklerin Efendisi
    krypt
    krypt's avatar
    Kayıt Tarihi: 05/Mart/2004
    Erkek

    Bir kaç mobil uygulama var zaten. Verdiğim tezin içinde linkleri var. 


    while (1<2)
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek

    @NmC'nin söylediklerine ek olarak taşları bulmak için watershed algoritmasına bakabilirsin hocam


    İnsan; insan olsaydı,insan olmazdı..
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    NmC bunu yazdı
    MhmdAlmz bunu yazdı

    Bunun için OpenCV şart değil. Furrier dönüşümleri ile herhangi bir dilde yapabilirsin. Önce siyah beyaz çıktısını alacaksın tahtanın yuvarlarlakları kenar bulma formülü vs var. Gürültüleri vs giderip sonuca ulaşabilirsin.

    Anahtar kelime Image Processing Fourier Transform

    :)) Tekerlegi tekrar icad etsin yani :)

    Sen dinleme bu arkadasi hocam. Oturup bunu tek basina kodlamaya calisirsan cok eziyet cekersin. :D ( bu arada @MhmdAlmz gecen konunda bana da tesekkur etmisin rica ederim :) )

    Sahne ile ilgili belli constraintler(turkce tam karsiligi gelmedi aklima) olursa daha rahat halledersin.
    Go tahtasi hep sari mi olacak mesela?

    Veya masanin duracagi zeminin rengi belli olsa daha net sonuclar elde edebilirsin. Ama her yerde calissin istiyorum diyorsan o biraz daha zor olacaktir.

    Genel olarak izleyecegin yol su sekilde.

    Resmi renge gore filtreden gecir. (tahtayi zeminden ayirmak icin.)
    Sonra kontur veya cizgi bul

    Kontur buluyorsan poligona fit etmeye calis (approx polydp gibi bi fonksiyonu vardi)
    Cizgi bulduysan cizginin kesisimlerini bul.

    Bu sekilde elinde koseler olmus olacak

    Harris corner detector diye bi algoritma var ama genelde cok fazla kose buldugu icin senin senaryolarda guzel calismayacaktir.

    Neyse efendim koseleri bulduktan sonra resmin o koselere gore homografisini alacaksin. Bu sayede artik tahtaya tepeden bakiyor olacaksin

    Sonrasinda siyah ve beyaz icin fhresholddan gecirip taslarin lokasyonlarini cikartican.


    Taslari cikarttiktan sonra morfolojik islemlerle birbirine baglayip tekrar kontur alip icte kalan alani falan hesaplayabilirsin zannimca.

    Tabi bu son basamak biraz zahmetli olabilir, su an kafamda boyle bir yol var ama cikan sonuca gore arada baska filtreler islemler vs uygulanabilir.

     

    Isin icinden cikamayip vazgecersen haber ver, fikrini calip mobil uygulama yapabilirim :D

    Kolay gelsin simdiden :))

     

    Arkadaş teknik terim istedi hocam :) Tekerleği demekki sıfırdan icat etmek istiyor. 

    Yoksa istediği şeyin hazırı bile var. Tıpkı Optik Okuyucu mantığında bir sistem istiyor aslında. Bununla ilgili bir sürü kaynak bulabilir internette :)

    Bende buna benzer bir projenin hazır NodeJS ile yapılmış bir uygulaması var. Bende geliştiriyorum yani. Yanlış anlaşıldım herhalde gene .

    Bu arada rica ederim.


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Böcüklerin Efendisi
    krypt
    krypt's avatar
    Kayıt Tarihi: 05/Mart/2004
    Erkek

    Konuyla ilgisiz en son 3-4 sene önce bıraktığımda 9 kyu idim. Bu konuyu görünce bir maç oynadım 25 kyu adama yenildim :D


    while (1<2)
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DeadSoul
    DeadSoul's avatar
    Kayıt Tarihi: 12/Mayıs/2012
    Erkek
    krypt bunu yazdı

    Konuyla ilgisiz en son 3-4 sene önce bıraktığımda 9 kyu idim. Bu konuyu görünce bir maç oynadım 25 kyu adama yenildim :D

    hocam bayağı paslanmışsın yav :D hangi server'da oynadın artık lelaa gibi botlar sayesinde internette cheater'lar arttı

Toplam Hit: 3509 Toplam Mesaj: 11
c++ baduk opencv