So, for each for loop, I generate an image + ask the user to input 'yes' or 'no'. I'd like the image & the user input line to be cleared from the cell before I generate a new image & new user input line. Instead, only the image is being cleared/replaced (the user input line doesn't show at all).
This is what it looks like now (everything under for loop should be indented to right):

for filename in os.listdir(folder):
clear_output(wait=True)
split_filename=os.path.splitext(filename)[0] #splitting filename from .jpg
image_id, age=split_filename.split('_', 2) #saving image_id and age
#print([image_id, age])
if int(image_id)>= starting_image_id: #start at a certain image #, specified above
image_ids.append(image_id)
ages.append(age)
#This line below displays image in original color:
#display.display(Image.open(os.path.join(folder,filename)))
#These 5 lines below display image in grayscale:
image = cv2.imread(os.path.join(folder,filename))
image1 = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
plt.figure() # create a new figure
plt.imshow(image1, cmap='gray')
plt.show()
attractive_rating=0 #so that while loop will run until user input = y or n
while attractive_rating != 'y' and attractive_rating !='n':
attractive_rating=input('Do you find this face attractive? Enter y/n:')
attractive_labels.append(attractive_rating)
if attractive_labels.count('y') > 2 and attractive_labels.count('n')>2:
break
You can use clear_output at the end of the loop.
This code will print out some output with a specified value. Each iteration the previous output is cleared and a new one is displayed instead.
from IPython.display import clear_output
value = 1
while value != 'x':
value = input('Input a value. Type x to quit.')
print(f'The value was {value}')
clear_output(wait=True)
print('Script completed')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With