Skalowanie części obrazu
Chcę powiększyć część obrazu, w tym przykładzie nos.
Mam funkcję wyboru części obrazu, którą chcę powiększyć.
def copyAndPaste(picture):
height = getHeight(picture)
width = getWidth(picture)
newPicture = makeEmptyPicture(width, height)
for x in range(width):
for y in range(height):
pxl = getPixel(picture,x,y)
if (x>48 and x<59) and (y>58 and y<71):
newPxl =getPixel(newPicture, #?,#?)
else:
newPxl = getPixel(newPicture, x,y)
color = getColor(pxl)
setColor(newPxl,color)
return newPicture
def d():
f=pickAFile()
picture=makePicture(f)
newPicture = copyAndPaste(picture)
writePictureTo(newPicture, r"D:\FOLDER\0Pic4.jpg")
explore (newPicture)
Mam też funkcję powiększania obrazu:
def Enlarge(picture):
height = getHeight(picture)
width = getWidth(picture)
newPicture = makeEmptyPicture(width*2, height*2)
x1=0
for x in range(0,width):
y1=0
for y in range(0,height):
pxl = getPixel(picture,x,y)
newPxl = getPixel(newPicture, x1,y1)
color = getColor(pxl)
setColor(newPxl,color)
y1=y1+2
x1=x1+2
return newPicture
na przykład.
Z:
Do:
Próbowałem wielu rzeczy, ale nie potrafię ustalić, jak połączyć dwa, aby powiększyć część obrazu, pozostawiając resztę obrazu w takt.
Tak powinien wyglądać wynikowy obraz (tak śmieszny jak jest),
Ćwiczyłem na małych obrazkach, ponieważ wykonanie tego programu może zająć tak dużo czasu, nie jest opłacalne pracować z większymi obrazami, na tym etapie, co oznacza, że wyniki są szkicowe, ale przynajmniej pokażą, czy działa.