2016-03-25 2 views
0

Python'da görüntü nesneleri kullanma ile ilgili ödevler üzerinde çalışıyorum. Bu ödev için python 3.4.1 kullanıyorum. Herşeyi yaptım gibi hissediyorum, ama doğru şekilde çalışmak istemiyor. Temel olarak, iliştirdiğim resme benzemeye çalışıyorum ama sadece 1 kırmızı çizgi ve 1 kırmızı çizgi üstte beyaz zemin üzerine. Herhangi bir yardım çok takdir edilecektir.Çalışmak için fraktal görüntü alınamıyor

ekli resim: Maalesef, kod yapması gerektiğini yazdım tam olarak ne yapar http://imgur.com/TMho41w

import cImage as image 

width = 500 
height = 500 

img = image.EmptyImage(width, height) 
win = image.ImageWin("Exercise 3", width, height) 
img.draw(win) 

for row in range(height): 
    for col in range(width): 
     p = img.getPixel(col, row) 

     if row == 0 or col == 0: 
      p = image.Pixel(255, 0, 0) 
     else: 
      Sum = 0 
      temppixel = img.getPixel(col-1, row) 
      if temppixel.getRed() == 255: 
       Sum = Sum + 1 
      elif temppixel.getBlue() == 255: 
       Sum = Sum + 2  

      temppixel = img.getPixel(col-1, row-1) 
      if temppixel.getRed() == 255: 
       Sum = Sum + 1 
      elif temppixel.getBlue() == 255: 
       Sum = Sum + 2 

      temppixel = img.getPixel(col, row-1) 
      if temppixel.getRed() == 255: 
       Sum = Sum + 1 
      elif temppixel.getBlue() == 255: 
       Sum = Sum + 2     

      if Sum % 3 == 1: 
       p = image.Pixel(255, 0, 0) 
      elif Sum % 3 == 2: 
       p = image.Pixel(0, 0, 255) 
      else: 
       p = image.Pixel(255, 255, 255) 

     img.setPixel(col, row, p) 

    img.draw(win)   

img.draw(win) 

# uncomment this to save the image as a file 
#img.saveTk("gradient.gif") 

win.exitonclick() 

cevap

0

. üç İlk if ... elif CONDITION1, 2 ve 3 isim verelim:

  1. ilk piksel böylece row = 0 durum 2 ve 3 (çünkü geçersiz koordinatları kullanarak demektir ki, biz ilk hat yoluyla ilerleme Sonra kırmızı
  2. olarak ayarlanır row-1). Yani burada sadece durum koşulu var ve her zaman 1 sum ile artacak, yani yeni bir kırmızı piksel ekleyeceğiz.
  3. Şimdi ilk kırmızı çizginiz var.
  4. İlk satır için, ikinci satırdan başlayarak: koşullar 1 & 2 geçersiz koordinatlar kullanıyor. Koşul 3 daima yeni bir kırmızı piksel anlamına gelen sum = 1'u döndürecektir. Ve kırmızı çizginizin yukarıdan aşağıya doğru
  5. Ve sonra row = 1 ve col = 1'dan, tüm komşular kırmızıdır, bu da yeni bir beyaz piksele yol açar. Ne yazık ki, beyaz bazı kırmızılar içerir, bu yüzden her zaman karşılaşılan sames koşulları olur ve beyaz arka planınız olur.

Bu yöntemde bir Sierpinski halısı oluşturmak için tam algoritmayı bulamadık, bu yüzden düzeltemiyorum. Ancak, bu kenarlara dikkat etmelisiniz: İlk satırda veya ilk sıradaysanız üç komşu ne olmalı?

+0

Aman tanrım, çok teşekkür ederim! Tamamen beyazın 255 Kırmızı olduğunu göz ardı ettim! Bunu nasıl düzelteceğimi biliyorum, teşekkürler! : D DÜZENLEME: Yerine inandınız, ancak yeterince itibar puanı yok. – Muldawg2020

+0

Rica ederim. Sorunu çözdüyseniz, kaç puanınız olursa olsun cevabı kabul edebilirsiniz (oy seçeneklerinin altındaki onay işareti). – Loufylouf

+0

Bitti işte! Ayrıca şimdi çalışıyor :) http://imgur.com/774651m Her zaman düzeltildi sonra sorunlarımın ne kadar küçük göründüğünü beni şaşırtıyor haha ​​ Tekrar teşekkürler! – Muldawg2020