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

2023-12-02

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

Regards


“不使用 script-fu”。但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()

请注意,代码的第二部分只是用于注册函数的样板。 事实上 - 调用“gimp_file_load_layers”并没有像它应该的那样工作 - 因为它返回一个对象“id”列表,这些对象“id”的列表并不是来自Python - 但是对“Item.from_id”方法的调用允许人们绕过这个不便。不过,这仅在 gimp-2.8 中可用

要使其在 gimp 2.6 中工作,您必须在新图像中打开文件,然后将图层复制到目标图像。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GIMP:从文件夹中的所有图像文件创建图像堆栈 的相关文章

  • Matlab 图像数据的 hist 函数

    我是 Matlab 新手 我想制作自己的函数 与 imhist 显示图像数据的直方图 完成相同的工作 但我对此完全是新手 我不知道如何做开发这样的功能 我开始做一些东西 但它非常不完整 function output args myhist
  • 从包含带边框的表格的图像中提取表格结构

    我正在尝试提取下表中的单元格位置 应用自适应阈值处理后 我能够获得细胞位置周围的轮廓 并且 HoughLines 获得垂直和水平结构元素 这是我的代码 img cv2 imread os path join img path file im
  • 从点云检测平面集

    我有一组点云 我想测试3D房间中是否有角落 所以我想讨论一下我的方法 以及在速度方面是否有更好的方法 因为我想在手机上测试它 我将尝试使用霍夫变换来检测线 然后我将尝试查看是否有三条线相交 并且它们也形成了两个相交的平面 如果点云数据来自深
  • 如何绘制更大的边界框和仅裁剪边界框文本 Python Opencv

    我正在使用 easyocr 来检测图像中的文本 该方法给出输出边界框 输入图像如下所示 Image 1 Image 2 使用下面的代码获得输出图像 But I want to draw a Single Bigger bounding bo
  • 加速 C# 中的矩阵加法

    我想优化这段代码 public void PopulatePixelValueMatrices GenericImage image int Width int Height for int x 0 x lt Width x for int
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • 如何使用网格分割图像并保留透明度边界框

    我有一些 png 图像 我想将其分成几个部分 例如按网格或大小 但每个部分应具有与原始图像相同的边界框 透明度 Example 将图像分成两部分 原来的 200 89 Output 部分 1 png 200 89 第2部分 png 200
  • 如何在Matlab中将图像从笛卡尔坐标更改为极坐标?

    我正在尝试将图像的像素从 x y 坐标转换为极坐标 但我遇到了问题 因为我想自己编写该函数 这是我到目前为止所做的代码 function newImage PolarCartRot read and show the image image
  • Node.js 转换 HEIC 文件

    我需要一种使用 Node js 将照片从 HEIC 格式转换为 jpg 或 png 的方法 我已经搜索过 似乎找不到任何有效的东西 npm i heic 转换 const convert require heic convert async
  • Python绕相机轴旋转图像

    假设我有一个图像 是在对某些原始图像应用单应性变换 H 后获得的 未显示原始图像 将单应性 H 应用于原始图像的结果是该图像 我想围绕合适的轴 可能是相机所在的位置 如果有的话 将此图像旋转 30 度以获得此图像 如果我不知道相机参数 如何
  • 在哪里可以找到有关双三次插值和 Lanczos 重采样的好读物?

    我想用 C 实现上述两种图像重采样算法 双三次和 Lanczos 我知道现有的实现有几十种 但我仍然想制作自己的实现 我之所以这么做 部分原因是我想了解它们是如何工作的 部分原因是我想为它们提供一些主流实现中没有的功能 例如可配置的多 CP
  • 如何使用PHP在服务器端缩小图像?

    我有一些从服务器提取的图像 imgUrl保存图像的路径 现在我用 img src width 100 height 200 或 CSS 来缩小图像 但我想在 PHP 中执行此操作 以便将已缩放的图像提供给 DOM 有任何想法吗 Thanks
  • Alpha 混合可消除图像中的接缝

    我缝合了两张图像 但在最终图像中存在可见的接缝 我正在尝试使用阿尔法混合去除那条接缝 我知道 Alpha 混合是使用cvAddweight 函数 但在此函数参数是两个图像 alpha beta gamma和目的地 我正在服用gamma 0
  • 用于测量图像中弯管长度的特征检测技术

    我有数百张来自荧光显微镜实验的 DNA 纳米管图像 我想使用图像处理以自动方式测量管长度的分布 这是显微镜图像示例 我尝试了一些使用 python 和 skimage 的特征提取方法 我尝试过使用 Canny 边缘检测 它成功地创建了每个纳
  • 如何从一个清晰的例子计算二维图像中的吉布斯能量

    我有一个关于矩阵的有趣问题 在吉布斯分布中 吉布斯能量U x 可以计算为 这是所有可能的派系 C 上的派系势 Vc x 的总和 右图 团 c 被定义为 S 中站点的子集 x 蓝色像素的邻域是左图中黄色像素的邻居 其中每对不同的站点都是邻居
  • 运行时错误:大小不匹配,m1:[4 x 3136],m2:[64 x 5]位于c:\ a \ w \ 1 \ s \ tmp_conda_3.7_1

    我使用 python 3 当我插入变换随机裁剪大小 224 时 它会给出未匹配错误 这是我的代码 https github com kajasumanie medical plant classification blob master i
  • Matlab:掩码/创建一个知道其原点且具有一定半径的圆形 roi

    只是一个简单的问题 我有一张图像 并且提取了某个点 特征 我知道每个帧中该点的坐标 说 x1 和 y1 我需要一个圆形 ROI 形式 该点在图像上具有我选择的半径 我尝试了 impoly 和 roipoly 当我知道图像中的要点时 不知道如
  • Java无损保存原始JPEG

    如下所示 我有第一张图像是原始 JPEG 图像 第二张图像用于缓冲图像 然后使用保存http www lac inpe br JIPCookbook 6040 howto compressimages jsp http www lac in
  • 去除 OCR 图像处理中的背景颜色

    我正在尝试删除背景颜色 以提高 OCR 对图像的准确性 示例如下所示 我会将所有字母保留在后处理图像中 同时仅删除浅紫色纹理背景 是否可以使用一些开源软件如Imagemagick将其转换为二值图像 黑 白 来实现这一目标 如果背景有不止一种
  • 使用 Azure 机器学习检测图像中的符号

    4年前我发帖这个问题 https stackoverflow com q 6999920 411094不幸的是 得到的一些答案超出了我的技能水平 我刚刚参加了一次构建巡演会议 他们在会上谈论了机器学习 这让我想到了使用 ML 来解决我的问题

随机推荐