【发布时间】:2021-02-07 14:41:25
【问题描述】:
我有以下程序:
daytime_images = os.listdir("D:/TR/Daytime/")
number_of_day_images = len(daytime_images)
day_value = 27
def find_RGB_day(clouds, red, green, blue):
img = Image.open(clouds)
img = img.convert('RGB')
pixels_single_photo = []
for x in range(img.size[0]):
for y in range(img.size[1]):
h, s, v, = img.getpixel((x, y))
if h <= red and s <= green and v <= blue:
pixels_single_photo.append((x,y))
return pixels_single_photo
number = 0
for _ in range(number_of_day_images):
world_image = ("D:/TR/Daytime/" + daytime_images[number])
pixels_found = find_RGB_day(world_image, day_value, day_value, day_value)
coordinates.append(pixels_found)
number = number+1
已编辑 我想使用多处理器执行该功能,所以我尝试了:
for number in range(number_of_day_images):
p = multiprocessing.Process(
target=find_RGB_day,
args=("D:/TR/IR_Photos/Daytime/" + daytime_images[number],27, 27, 27))
p.start()
p.join()
number = number+1
coordinates.append(p)
执行的时候出现了AttributeError,不知道怎么解决:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\ProgramData\Anaconda3\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "C:\ProgramData\Anaconda3\lib\multiprocessing\spawn.py", line 126, in _main
self = reduction.pickle.load(from_parent)
AttributeError: Can't get attribute 'find_RGB_day' on <module '__main__' (built-in)>
我认为这个错误可能与我将图像引入程序的方式有关,我从一个文件夹中获取所有名称,然后选择每个元素的元素,其中 number= number+1
【问题讨论】:
标签: python python-3.x image multiprocessing runtime-error