Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing GIMP:从文件夹中的所有图像文件创建图像堆栈_Image Processing_Gimp_Script Fu - Fatal编程技术网

Image processing GIMP:从文件夹中的所有图像文件创建图像堆栈

Image processing GIMP:从文件夹中的所有图像文件创建图像堆栈,image-processing,gimp,script-fu,Image Processing,Gimp,Script Fu,我需要比较大量图像需要叠加的分割算法的结果,例如原始图像和二值图像。因此,我想到了一个GIMP脚本,它采用目录名,将所有包含图像文件的文件放入层中,以便可以在GIMP中打开和关闭它们以比较结果。 如何使用GIMP实现这一点? 谢谢你的提示 视为“不以符”。但是Python适合您的需要。这是一个简单的脚本-核心逻辑应该是4行左右,因此我将在这里为您编写: #!/usr/bin/python # -*- coding: utf-8 -*- from gimpfu import * import o

我需要比较大量图像需要叠加的分割算法的结果,例如原始图像和二值图像。因此,我想到了一个GIMP脚本,它采用目录名,将所有包含图像文件的文件放入层中,以便可以在GIMP中打开和关闭它们以比较结果。 如何使用GIMP实现这一点? 谢谢你的提示

视为“不以符”。但是Python适合您的需要。这是一个简单的脚本-核心逻辑应该是4行左右,因此我将在这里为您编写:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from gimpfu import *
import os

def load_images_in_dir(image, drw, path):

    for filename in os.listdir(path):
        try:
            if filename.lower().split(".")[-1] in ("png", "jpg"):
                #import pdb as debug; debug.set_trace()
                image_id, layer_ids = pdb.gimp_file_load_layers(image,
                     os.path.join(path, filename))
                for id in layer_ids:
                    new_layer = gimp.Item.from_id(id)
                    pdb.gimp_image_add_layer(image, new_layer, 0)
        except Exception, error:
            print error



register(
        "open_images_in_dir",
        "Open all files in a directory",
        "Open all files in a directory",
        "Joao S. O. Bueno",
        "Joao S. O. Bueno",
        "2012. Creative Commons Citation Needed license",
        "Open Images in Dir as Layers...",
        "*",
        [(PF_IMAGE, "image", "the image", None),
         (PF_DRAWABLE, "drw", "the drawable", None),
         (PF_DIRNAME,"path", "Directory to Open", "."),],
        [],
        load_images_in_dir,
        menu="<Image>/File/")

main()
#/usr/bin/python
#-*-编码:utf-8-*-
从gimpfu进口*
导入操作系统
def加载图像(图像、drw、路径):
对于os.listdir(路径)中的文件名:
尝试:
如果文件名.lower()在(“png”、“jpg”)中拆分(“.”[-1”):
#导入pdb作为调试;debug.set_trace()
image\u id,layer\u id=pdb.gimp\u file\u load\u layers(image,
join(路径,文件名))
对于层\u id中的id:
新建\u层=gimp.Item.from\u id(id)
pdb.gimp_图像_添加_层(图像,新_层,0)
除异常、错误外:
打印错误
登记册(
“在目录中打开图像”,
“打开目录中的所有文件”,
“打开目录中的所有文件”,
“Joao S.O.Bueno”,
“Joao S.O.Bueno”,
“2012.知识共享引用需要许可证”,
“以层的形式在目录中打开图像…”,
"*",
[(PF_图像,“图像”,“图像”,无),
(PF_可提取,“drw”,“可提取”,无),
(PF_DIRNAME,“路径”,“要打开的目录”,“),],
[],
将图像加载到目录中,
menu=“/File/”)
main()
请注意,代码的第二部分只是注册函数的样板文件。 事实上,调用“gimp_file_load_layers”并没有像它应该的那样工作,因为它返回了一个对象“id”列表,这些对象不应该从Python中看到,但是调用“Item.from_id”方法可以避免这一不便。但这仅在gimp-2.8中可用

要在gimp 2.6中实现这一点,您必须在新图像中打开文件,并将层复制到目标图像中


将上面的脚本复制到GIMP的插件目录(例如,在*nix下,~/.GIMP-2.8/plug-ins,或者在GIMP中选中edit->prerencers->folders以获取插件文件夹),并将其标记为可执行文件。

我刚刚意识到GIMP 2.8中的命令“file”>“openaslayers”也有类似的作用

您将如何更改此文件的标题,以及是否可以在保存的文件中存储其他数据?