Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Visual Basic => Konuyu başlatan: ilhan_mkp - 03 Kasım 2014, 00:42:14

Başlık: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: ilhan_mkp - 03 Kasım 2014, 00:42:14
x satır y sutun 24 bit bmp resminden header vs ne varsa ilk byteden itibaren tek tek okuya bilirmiyim.
mesela elimdeki resim 197 satır 300sutun.
010 editör isimli bir program ile baktım bitmap 36h adresinden başlıyor.
her pixel 3 byte renk bilgisi içeriyor.
içriği anladım ama bu bitmapten byteler halinde pixel verilerini nasıl alabilirim.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: atomx - 03 Kasım 2014, 14:51:00
http://www.uvm.edu/~rerickso/education/vb_bmp/BMP.html (http://www.uvm.edu/~rerickso/education/vb_bmp/BMP.html)

burada oluşturma hakkında kod var. buradan çıkarırsın visual basic bilmem ama bitamp okuma için önce header verisini almalısın içeriği hakkında bilgi ise;
http://www.daubnet.com/en/file-format-bmp (http://www.daubnet.com/en/file-format-bmp)
iyi çalışmalar
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: ilhan_mkp - 03 Kasım 2014, 18:40:23
hocam header ile ilgili ayrintilari biliyorum.
bmp dosyasini byte olarak vb ile okuyamiyorum.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: Kabil ATICI - 03 Kasım 2014, 19:17:34
Buna benzer bir olayı resmi picture alanına alıp, piksel piksel tarayarak çözmüştüm.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: ilhan_mkp - 03 Kasım 2014, 19:56:55
benimde asıl amacım o aslında renk ve mesafe arasında nasıl bir ilişki var bakayım dedim.
beceremedim :)
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: Kabil ATICI - 03 Kasım 2014, 20:14:00
renkler griye kayıyor. Uzun mesafeler için..
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: ilhan_mkp - 03 Kasım 2014, 20:35:24
hocam aslında uzun mesafe değilde şöyle kalınlık ölçümü yapabilirmiyim.
sonra sağlam red ürün testi gibi karşılaştırmalar bunlar için acaba olurmu denemeleri.
ben ilkel bişi yapıp olayın işleyişini anlamak istiyorum.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: Kabil ATICI - 03 Kasım 2014, 21:21:38
Tek bir görüntü üzerinden zor. Derinlik olayı sorunu var. Bildiğim kadarı bu tür durumlarda iki kameradan alınan görüntü ile çalışılıyor.
Eğer sadece deneme ise  getpixel komutu ile bir görüntüden istediğin noktadan renk bilgisini alabilirsin.
http://msdn.microsoft.com/tr-tr/library/system.drawing.bitmap.getpixel(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2 (http://msdn.microsoft.com/tr-tr/library/system.drawing.bitmap.getpixel(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2)

örnek olarak başlangıç noktası. Dosya olayına girmedim.

Normalde bunu tek renkli LCD'ler için siyah beyaz görüntüden veri tablosu için kullanıyorum.
Bir picture alanı açıp bunun üzerine resmi alıyorum, sonra buradaki resim üzerinde getpixel ile renk bilgisini alıp değerlendiriyorum.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: ilhan_mkp - 03 Kasım 2014, 22:01:41
iki kmeralı sistem nasıl yapıyor bu işi olayın işleyişi nedir.
görüntü işlemeyle hiç uğraşmadım ama hoşuma gitti bu konu.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: Kabil ATICI - 03 Kasım 2014, 22:11:53
İşin matematiğini fazla uğraşmadım, iki kamera arasındaki farktan dolayı oluşan yapıdan oluyor.
Şu anda iki gözü bulanan tüm canlılarda (özellikle avcılarda) derinlik kavramını sağlamak için kullanılıyor. Ama bizim kullandığımız kamera sisteminde  ve canlıların beyin işlem gücünde olduğu kadar hassas olacağını sanmıyorum.

Bu konunun bazı üniversitelerde araştırma konuşu olduğunu bazı internet yayınlarında rastladım. Nesne tanıma, belli bir nesneye odaklanma nesne takibi gibi konularda çalışılıyor.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: ilhan_mkp - 03 Kasım 2014, 22:29:13
hocam ben öyle koşan çeylan falan analiz etmeye çalışmıyorum.
bizim müşteriler kuzu kuzu yerinde duran somunları test etmek için yaptığı harcamalar gözüme battı.
5mm bir malzemenin yokluğunu farketmek zor olmaz heralde diye araştırıyorum.
24 bit bitmap gözüme kolay göründü.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: Kabil ATICI - 03 Kasım 2014, 22:41:51
işe basitten başla istersen üçgen, kare, dikdörtgen gibi nesneleri tanımlatmayı bir dene (kamera görüntüsü olmasa bile olur.)... Sonrası gelir.
İşin içine iyi bir matematik girecektir.
Analiz esnasında renkleri azaltman gerekecek.Nesneler üzerindeki tonlama yüzünden.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: ilhan_mkp - 03 Kasım 2014, 22:48:37
aslında ben onaylı ürün eksik üretim karşılaştırması yapmayı düşünüyordum.
ama şekilleri algılamak çok daha iyi sonuçlar vercektir.

mesaj birleştirme:: 03 Kasım 2014, 23:17:14

[codeDim image1 As Bitmap

Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click

    Try
        ' Retrieve the image.
        image1 = New Bitmap( _
            "C:\Documents and Settings\All Users\Documents\My Music\music.bmp", _
            True)

        Dim x, y As Integer

        ' Loop through the images pixels to reset color.
        For x = 0 To image1.Width - 1
            For y = 0 To image1.Height - 1
                Dim pixelColor As Color = image1.GetPixel(x, y)
                Dim newColor As Color = _
                    Color.FromArgb(pixelColor.R, 0, 0)
                image1.SetPixel(x, y, newColor)
            Next
        Next

        ' Set the PictureBox to display the image.
        PictureBox1.Image = image1

        ' Display the pixel format in Label1.
        Label1.Text = "Pixel format: " + image1.PixelFormat.ToString()

    Catch ex As ArgumentException
        MessageBox.Show("There was an error." _
            & "Check the path to the image file.")
    End Try
End Sub]

http://msdn.microsoft.com/tr-tr/library/system.drawing.bitmap(v=vs.110).aspx (http://msdn.microsoft.com/tr-tr/library/system.drawing.bitmap(v=vs.110).aspx)

bu örnek işime yarayacak gibi tam aradığım örnek buydu her pixeli tek tek ele alıyor daha sonra yazıyor.
hatta rengi zayiflatma olayına yararı olan bir kısım var.
Başlık: Ynt: visual basic ile 24 bit bmp renk bilgilrini nası okurum.
Gönderen: ilhan_mkp - 05 Kasım 2014, 20:22:56
hocam bu konu çok güzel gerçekten sardı ama kenar bulma algoritalarına bakıyorum benim sayısal alt yapım anlamama engel olmaya başladı.
sobel algoritması var komşu pixellerle birlikte küme halinde işlem yapıyor azcık onu anlar gibi oldum.