C dilinde görüntü işleme nasıl yapılıyor bilen var mı

Başlatan gocen, 12 Nisan 2010 - 11:32:00

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

gocen

C'de bir gri tonlu resmi alıp okumak ve pikseller üzerinde değişiklik yapmak istiyorum nasıl yapılır
Ayinesi iştir kişinin lafa bakılmaz,
Şahsın görünür, rütbe-i aklı eserinde.
Ziya Paşa

eribol

Hangi aşamadan bahsediyorsunuz bilmiyorum ama C ve imagemagick ile baya güzel işler çıkartılabiliyor. http://www.imagemagick.org/script/magick-core.php

sem

Çok büyük ihtimalle sistem fonksiyonları ile çalışmanız gerekecek hangi sistemde çalışıyorsanız... Çünkü bahsettiğiniz olayla ilgili bir  standart C fonksiyonunu görmedim hiç... Bilen bir arkadaş biraz açıklasa durumu çok iyi olur  harbiden ben de merak ettim... C ile resim işlemek için ne gibi bir fonksiyon takımı kullanmamız gerekecek... Yeni başlık dosyaları falan mı indirmemiz gerekecek ya da...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

eribol

Ben anladığım kadarını açıklayayım. Şimdi C mübarek bir dil elinden her bir iş geliyor. Dolayısıyla resimleri pixel pixel okuyabilir ve hatta daha fazlasını. Sonuçta her imaj dosyası belli bir mantığa göre yapılandırılıyor. Ancak şimdi tutup bunun için baştan komut yazmak yerine linuxta bunun için geliştirilmiş araçlar mevcut. Hatta zorlarsak gimp kütüphaneleri bile kullanılabilir. Imagemagick bu iş için biçilmiş kaftan. Hemen her programlama veya sript dili kütüphanesi var. Özellikle C ile yazıldığı için C programlama diliyle çok daha iyi anlaşabiliyor.

Demem o ki kafa patlatmaya gerek yok. Imagemagick dökümanları kurcalanırsa resim işleme C ile nasıl yapılır çok iyi bir şekilde anlaşılır.

Hatti

C dili ile hemen her dosya biçimini okuyup, bellekte istediğin değişikliği yapabilirsin. Ancak bunu yapabilmek için öncelikle ilgilendiğin dosya biçimini tanıman gerekir.

Örnek en basitinden bmp dosyası diyelim. Bmp, bitmap'ın kısaltılmışı, o da bit haritası demek. Bmp biçiminde bir dosyanın ilk iki karakteri BM'dir(yani 16'lık tabanda 0x42 0x4D). Dosyanın en başında başlık bölümü vardır ve görüntü hakkındaki tüm bilgi buradadır. Genel bilgilerden sonra daha detaylı bilgiler sonra renk paleti bilgisi en sonda da resim verisi bulunur. Bu resim verisi ise karşınızda durduğu gibi değil, sol-alt tarafından başlanarak kaydedilir. BMP hakkında bilgi için şu ve şu bağlantıyı incele.

Ya ilgilendiğin dosya biçimini öğrenip kendin bu işi yapacaksın, ya da eribol'un bahsettiği gibi bu konularda bir çok hazır işleveller ve kitaplıklar var.

sem

Her gün  bir şey öğreniyorum... Harbiden düşündüğüm gibi C' de bir alana yönelip o alanda geliştireceksin kendisi demek ki... Yoksa hem network, hem API'ler ya da burda bahsettiğimiz gibi daha ne alanlar var... Birinden biri seçilecek yani başka yolu yok gibi... Başka diller de öğrenmek isteyenler, başka şeylere de vakit ayırmak isteyenler için tabi...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

gocen

burada bahsettiğim görüntü işleme bize verilen bir ödev
hoca kod istiyor dolayısıyla eribolun dediği gibi yapamam
zaten ben görüntü işleme yapacak olsam matlabda alası var hiç C ile uğraşmam

ödev de bi gri tonlu bmp'yi alıp hocanın bize verdiği bi işlemi o görüntünün pikselleri üzerinde yapmak


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 13 Nisan 2010 - 17:41:25

bi tane örnek buldum
<windows.h> diye bi include var
bu windows.h bi yerden indirilebilir mi
Ayinesi iştir kişinin lafa bakılmaz,
Şahsın görünür, rütbe-i aklı eserinde.
Ziya Paşa

sem

Normalde kendisi iniyor olması lazım... Gerçi derleyici farkından kaynaklı olabilir de... Ben Windows'ta Dev-C++ kullanıyorum... Ayrıyetten bir indirme yapmama gerek kalmadan "include" dosyasının içinde windows.h mevcut zaten... Bir deneyin belki sizde de mevuttur.. Yoksa windows altında standartlardan başka fonksiyon kullanamazsınız... Onu düşünmüş olmalılar diye düşünüyorum... İyi günler...
/*Başlık dosyaları derleyicen derleyiciye göre de isim değiştirmiyorsa tabi, o da bir ihtimal...*/
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

gocen

bmp görüntülerini işlemek için easybmp isminde bir tool buldum

güzel bir tool, g++ da çalıştırdım işe yarıyor.
Ayinesi iştir kişinin lafa bakılmaz,
Şahsın görünür, rütbe-i aklı eserinde.
Ziya Paşa