예제 #1
0
파일: HW8.py 프로젝트: rootulp/school
def sharpen():
    global photo
    pixels = BCImage.getPixels(photo)
    blur()
    blurPixels = BCImage.getPixels(photo)
    for row in range(1,photo.height()-1):
        for col in range(1,photo.width()-1):
            blurR = blurPixels[row][col][0]
            blurG = blurPixels[row][col][1]
            blurB = blurPixels[row][col][2]
            regR = pixels[row][col][0]
            regG = pixels[row][col][1]
            regB = pixels[row][col][2]
            newR = regR + (regR - blurR)
            newG = regG + (regG - blurG) 
            newB = regB + (regB - blurB)
            if newR > 255:
                newR = 255
            elif newR < 0:
                newR = 0
            if newG > 255:
                newG = 255
            elif newG < 0:
                newG = 0
            if newB > 255:
                newB = 255
            elif newB < 0:
                newB = 0
            pixels[row][col]=[newR, newG, newB]
    BCImage.setPixels(photo,pixels)
예제 #2
0
파일: HW8.py 프로젝트: rootulp/school
def flipv():
    global photo
    pixels = BCImage.getPixels(photo)
    newv = []
    for row in range(photo.height()-1,-1,-1):
        newv.append(pixels[row])
    BCImage.setPixels(photo,newv)
예제 #3
0
파일: HW8.py 프로젝트: rootulp/school
def pixelate():
    global photo
    pixels = BCImage.getPixels(photo)
    for row in range(photo.height()):
        for col in range(photo.width()):
            if row == 0 and col == 0:
                newR = pixels[row][col][0]
                newG = pixels[row][col][1]
                newB = pixels[row][col][2]
                for r in range(10):
                    for c in range(10):
                        pixels[row+r][col+c] = [newR,newG,newB]
            elif row % 10 == 0 and col % 10 == 0:
                newR = pixels[row][col][0]
                newG = pixels[row][col][1]
                newB = pixels[row][col][2]
                for r in range(10):
                    for c in range(10):
                        if row+r > photo.height()-1:
                            r = photo.height()-1-row
                        elif col+c > photo.width()-1:
                            c = photo.height()-1-col
                        else:
                            pixels[row+r][col+c] = [newR,newG,newB]
    BCImage.setPixels(photo,pixels)
예제 #4
0
파일: HW8.py 프로젝트: rootulp/school
def fliph():
    global photo
    pixels = BCImage.getPixels(photo)
    oldpixels = BCImage.getPixels(photo)
    for row in range(photo.height()):
        for col in range(photo.width()-1,-1,-1):
            r = oldpixels[row][col][0]
            g = oldpixels[row][col][1]
            b = oldpixels[row][col][2]
            pixels[row][photo.width()-col-1] = [r,g,b]
    BCImage.setPixels(photo,pixels)
예제 #5
0
파일: HW8.py 프로젝트: rootulp/school
def gray():                                                  #Make image gray
    global photo
    pixels = BCImage.getPixels(photo)
    for row in range(photo.height()):
        for col in range(photo.width()): 
            r = pixels[row][col][0]                   #Grab pixels
            g = pixels[row][col][1]
            b = pixels[row][col][2]
            gray = r*.3 + g*.59 + b*.11         #Formula to gray pixels
            pixels[row][col]=[gray,gray,gray]
    BCImage.setPixels(photo,pixels)
예제 #6
0
파일: HW8.py 프로젝트: rootulp/school
def colorblind():
    global photo
    pixels = BCImage.getPixels(photo)
    for row in range(photo.height()):
        for col in range(photo.width()):
            r = pixels[row][col][0]
            g = pixels[row][col][1]
            b = pixels[row][col][2]
            newB = (g+b)/2
            newG = (g+b)/2
            pixels[row][col]=[r,newG,newB]
    BCImage.setPixels(photo,pixels)
예제 #7
0
파일: HW8.py 프로젝트: rootulp/school
def darken():
    global photo
    pixels = BCImage.getPixels(photo)
    for row in range(photo.height()):
        for col in range(photo.width()):
            r = pixels[row][col][0]
            g = pixels[row][col][1]
            b = pixels[row][col][2]
            newR = ((r/255.0)**(1/.8))*255
            newG = ((g/255.0)**(1/.8))*255
            newB = ((b/255.0)**(1/.8))*255
            pixels[row][col]=[newR,newG,newB]
    BCImage.setPixels(photo,pixels)
예제 #8
0
파일: HW8.py 프로젝트: rootulp/school
def blur():
    global photo
    pixels = BCImage.getPixels(photo)
    for row in range(1,photo.height()-1):
        for col in range(1,photo.width()-1):
            r = pixels[row][col][0]
            g = pixels[row][col][1]
            b = pixels[row][col][2]
            newR = (pixels[row-1][col-1][0] + pixels[row-1][col][0] + pixels[row-1][col+1][0]+ pixels[row][col-1][0] + pixels[row][col][0] + pixels[row][col+1][0] + pixels[row+1][col-1][0] + pixels[row+1][col][0] + pixels[row+1][col+1][0])/9.0
            newG = (pixels[row-1][col-1][1] + pixels[row-1][col][1] + pixels[row-1][col+1][1]+ pixels[row][col-1][1] + pixels[row][col][1] + pixels[row][col+1][1] + pixels[row+1][col-1][1] + pixels[row+1][col][1] + pixels[row+1][col+1][1])/9.0
            newB = (pixels[row-1][col-1][2] + pixels[row-1][col][2] + pixels[row-1][col+1][2]+ pixels[row][col-1][2] + pixels[row][col][2] + pixels[row][col+1][2] + pixels[row+1][col-1][2] + pixels[row+1][col][2] + pixels[row+1][col+1][2])/9.0 
            pixels[row][col]=[newR, newG, newB]
    BCImage.setPixels(photo,pixels)
예제 #9
0
파일: HW8.py 프로젝트: rootulp/school
def edges():
    global photo
    pixels = BCImage.getPixels(photo)
    for row in range(0,photo.height()-1):
        for col in range(0,photo.width()-1):
                r = pixels[row][col][0]
                g = pixels[row][col][1]
                b = pixels[row][col][2]
                gray = r*.3 + g*.59 + b*.11
                r1 = pixels[row][col+1][0]
                g1 = pixels[row][col+1][1]
                b1 = pixels[row][col+1][2]
                gray1 = r1*.3 + g*.59 + b*.11
                if gray - gray1 >= 20 or gray1 - gray >= 20:
                    pixels[row][col] = [255,255,255]
                else:
                    pixels[row][col] = [0,0,0]
    BCImage.setPixels(photo,pixels)
예제 #10
0
파일: HW8.py 프로젝트: rootulp/school
def saturate():
    global photo
    pixels = BCImage.getPixels(photo)
    for row in range(photo.height()):
        for col in range(photo.width()):
            r = pixels[row][col][0]
            g = pixels[row][col][1]
            b = pixels[row][col][2]
            if r >= 128:
                newR = 255
            else:
                newR = 0
            if g >= 128:
                newG = 255
            else:
                newG = 0
            if b >= 128:
                newB = 255
            else:
                newB = 0
            pixels[row][col]=[newR,newG,newB]
    BCImage.setPixels(photo,pixels)
예제 #11
0
def draw(can,imarray):
    photo=PhotoImage(height=len(imarray),width=len(imarray[0]))
    BCImage.setPixels(photo,imarray)
    can.image=photo
    can.create_image(256,256,image=photo)