Я хотел бы напечатать на экране количество красных и зеленых пикселей во всех изображениях данной папки (код прикреплен ниже).
Однако кажется, что он повторяется снова и снова, что приводит к следующему результату: красный = 675, зеленый = 1036, повторяется более 200 раз.
Где я ошибся? (P.S. я совсем новичок в программировании)
import os
inputdir = r'C:\Users\XXXX\Desktop\Processed_Frames\LMT_T3_2mice_nothing - Copy\2dig'
from PIL import Image
for file in os.listdir(inputdir):
im = Image.open('000013.png')
red = 0
green = 0
for pixel in im.getdata():
if pixel == (255, 0, 0, 255): # if your image is RGB (if RGBA, (0, 0, 0, 255) or so
red += 1
if pixel == (000, 128, 000, 255): # if your image is RGB (if RGBA, (0, 0, 0, 255) or so
green += 1
print('red=' + str(red)+', green='+str(green))
end
Отступы имеют значение в питоне! У вас есть команда печати, которая появляется после каждого пикселя, а не после каждого изображения. Вам также не нужен «конец» после цикла for в python. Этот код будет печатать общее количество красных и зеленых пикселей на изображение:
import os
inputdir = r'C:\Users\XXXX\Desktop\Processed_Frames\LMT_T3_2mice_nothing - Copy\2dig'
from PIL import Image
for file in os.listdir(inputdir):
im = Image.open('000013.png')
red = 0
green = 0
for pixel in im.getdata():
if pixel == (255, 0, 0, 255): # if your image is RGB (if RGBA, (0, 0, 0, 255) or so
red += 1
if pixel == (000, 128, 000, 255): # if your image is RGB (if RGBA, (0, 0, 0, 255) or so
green += 1
print('red=' + str(red)+', green='+str(green))
Это странно. Какого цвета пиксель с rgb (254,0,0)?