我想在屏幕上打印给定文件夹的所有图像中红色和绿色像素的数量(下面附有代码)。
但是,它似乎一遍又一遍地迭代,从而产生以下输出:红色= 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
答案 0 :(得分:0)
缩进在python中很重要!您使打印命令出现在每个像素之后,而不是出现在每个图像之后。您也不需要在python中的for循环后使用“ end”。此代码将打印每张图像的红色和绿色像素总数:
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))