Filtrowania obrazu

Filtrowania obrazu
RC
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
  • Postów:20
0

Witam, kilka dni temu rozpocząłem naukę programowania w pythonie(2.7 ,shell). Próbuję napisać program który filtruje obraz. Niestety otrzymuję jedynie ostatni wiersz obrazka. Proszę o pomoc. Oto kod:

Kopiuj
from PIL import Image, ImageColor
import os

os.chdir(r"C:\Users\Kamil\Desktop\\")
img = Image.open("pingwin.jpg")


img.width = 256
img.height = 256
imgN = Image.new('RGBA' , (img.width, img.height) )

for x in range(1,img.width-1):
        for y in range(1,img.height-1):
            otoczenie = []
            for xd in (x-1,x,x+1):
                for yd in (y-1,y,y+1):
                    otoczenie.append(list(img.getpixel((xd,yd))))
            R = min( i[0] for i in otoczenie )
            G = min( i[1] for i in otoczenie )          
            B = min( i[2] for i in otoczenie )
        imgN.putpixel((x,y), (R,G,B))

imgN.save("pingwin1.png")

lion137
  • Rejestracja:około 8 lat
  • Ostatnio:2 minuty
  • Postów:4927
0

Nie wiem co tam Chcesz zrobić, ale te wewnętrzne pętle wykonują tylko jeden przebieg, nadają zmiennej wartość x - 1/y - 1 i kończą działanie.

Kopiuj
for xd in (x-1,x,x+1):
                for yd in (y-1,y,y+1):

edytowany 1x, ostatnio: lion137
lion137
A rzeczywiście, robią 3 iteracje, jakiś megachochlik się wkradł:)
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1

Zauważ, że linijka imgN.putpixel((x,y), (R,G,B)) wykonuje się tylko dla pętli x, podczas gdy powinna znajdować się poziom wyżej (wewnątrz drugiej pętli).


0

dziękuję za pomoc :) już wszystko działa :)

RC
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
  • Postów:20
0

wszystko działa dziękuję za pomoc :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.