Я использую неинтерактивный режим Gimp, так как хочу обработать большое количество изображений и их масок. Для каждого файла изображения у меня есть файл изображения маски, который состоит из 1 и 0 (1 означает, что пиксель должен быть выбран). Как мне выбрать их в Python? Я смотрю на ссылку здесь . Я вижу, что есть функция с именем gimp_selection_load
, которая загружает выделение из канала. Однако я не знаю, как преобразовать изображение маски в канал. Я попытался прочитать его с помощью , gimp_file_load
а затем gimp_image_get_channels
, но в изображении маски не найдены каналы. Что я делаю не так?
Самый простой способ — загрузить свою маску как новый слой, сделать из нее выделение цвета, а затем удалить ее. Предположим, что image
это ваше текущее изображение:
import gimpcolor
# load mask as layer
mask=pdb.gimp_file_load_layer(image,'/path/to/mask.png')
pdb.gimp_image_add_layer(image, mask,0)
# get selection
pdb.gimp_image_select_color(image, CHANNEL_OP_REPLACE, mask,gimpcolor.RGB(0,0,0))
# drop the mask layer
pdb.gimp_image_remove_layer(image,mask)
Христо Вригазов
ксеноид
Христо Вригазов