Обработка изображения Jython

Эта программа, как предполагается, берет схему изображения, затем разделяет ее на различные квадранты, затем окрашивает ее, такие как изображение Marilyn Monroe Andy Warhol.

Каждая функция до "Warholize" функционирует работы, но это застревает на c=getPixel(picEdge,x,y) под warholize функция, в которой я не уверен, что сделать. Любая справка значительно ценилась бы. Это, как предполагается, делает, "позволяют c быть цветом пикселя в picEdge в местоположении x, y"

def main():
  pic= makePicture( pickAFile() )
  show( pic )
  threshold= 10
  edgePic= makeOutline( pic, threshold )
  warholize(pic)
  show(warholize(pic))

def difference( a, b ):
  if a > b :
    return a - b
  else:
    return b - a

def intensity( px ) :
  r= getRed( px )
  g= getBlue( px )
  b= getGreen( px )
  avg= ( r + g + b ) / 3
  return avg

def makeOutline( pic, threshold ):
  w= getWidth( pic )
  h= getHeight( pic )
  edgePic= makeEmptyPicture( w, h )
  for x in range(2,w-1) :
    for y in range(2,h-1):
      px= getPixel( pic, x, y )
      pxLeft= getPixel( pic, x-1, y )
      pxUp= getPixel( pic, x, y-1 )
      leftDiff= difference( intensity(pxLeft), intensity(px) )
      upDiff= difference( intensity(pxUp), intensity(px) )
      if leftDiff > threshold or upDiff > threshold :
        setColor( getPixel(edgePic,x,y), black )   

def warholize(pic):
    threshold=10
    picEdge=makeOutline(pic,threshold)
    w= getWidth( pic )
    h= getHeight( pic )
    picNew= makeEmptyPicture( w, h )

    for x in range(0,w,2):
        for y in range (0,h,2):
           c=getPixel(picEdge,x,y)
           px=getPixel(picNew,x/2,y/2)
           if c is black:
               setColor(px,blue)
           else:
               setColor(px,yellow)
    return picNew
5
задан Gauthier Boaglio 2 November 2013 в 12:46
поделиться