问题标签 [magick++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
248 浏览

c++ - ImageMagick 结果与 Magick++ 不同

我有 3 张图片:source.jpgsaturated.jpgmask.jpg,我想使用mask.jpg混合source.jpgsaturated.jpg

当我使用 ImageMagick 的转换命令时:

我得到这个结果

但是当我对 Magick++ 做同样的事情时:

我得到这个结果

有人可以告诉我我做错了什么吗?

0 投票
1 回答
991 浏览

c++ - 如何在 Magick++ 中为文本添加自动换行

我正在尝试通过这样做将文本添加到 Magick++ 中的图像中:

方法一:

方法二:

方法 1 在给定重力的情况下计算最佳偏移量,但如果文本超出图像范围,则没有任何自动换行。

方法 2 有方法 1 的问题,而且它假设已经计算了正确的偏移量,因此文本写在正确的位置。

如何将自动换行添加到两种方法中的任何一种,但最好添加到方法 1?

PS:ImageMagick 使用标题选项自动换行,但我在 Magick++ 中找不到标题。

编辑:基于字体大小的丑陋边界控制。

0 投票
2 回答
284 浏览

c++ - Magick++ 模糊蒙版

我正在尝试将用于模糊蒙版的 ImageMagick 命令转换为 Magick++ API。

图像魔术

魔法++

我得到的结果只是一个白色图像,而正确的蒙版图像应该是这样的:

在此处输入图像描述

有人可以告诉我我的错误吗?

0 投票
1 回答
1251 浏览

c++ - 使用 Magick++ 在 C++ 中获取像素 RGB 值 0-255

我正在使用 C++ 和 Magick++。我需要从像素中获取红色、绿色和蓝色值,但我所做的任何事情都会让我的值超过 255 或十进制值。下一个代码给了我十进制值

另外我不知道我是否可以使用这样的量子值

获得 0 到 255 之间的红色值,而不是十进制。有谁知道如何得到这个或计算(我知道可能没有这个功能,所以我需要自己计算)

0 投票
1 回答
661 浏览

c++ - 使用 OpenMP 和 Magick++ 进行逐像素图像处理

我正在编写用于逐像素工作的图像处理的 C++ 代码(使用 Magick++),我想将它与 OpenMP 一起使用,但我有下一个问题:

而且,它还一直卡在无限循环中。

这是代码片段:

有没有办法解决这个问题?

0 投票
2 回答
686 浏览

c++ - 图片中已定义标记的位置检测

我仍然是编码的初学者。我目前正在使用 C/C++ 编写一个程序,该程序正在确定照片中已定义标记(这是一个带有白色周围的黑色圆圈)的像素位置。
我从标记和一个向量制作了一个蒙版,其中包含蒙版的每个像素值作为它的元素(使用 Magick++ 我对红色、绿色和蓝色的值求和)。向量包含 aprox。10 000 个值,因为掩码为 100x100px。我还使用阈值函数来简化图像。

比我做了一个网格,也就是对图片做同样的事情,我想在其中找到标记的坐标。它基本上是一个循环,它遍历图像,当程序知道网格中的像素值时,它会立即将它们与掩码进行比较。主要思想是找到掩码和网格位置之一之间的最小差异。

然而,问题是评估所有网格位置的过程需要大量时间(例如,图像有 1920x1080 像素,因此超过 200 万个向量包含 10 000 个值)。我决定循环网格不是每个像素,而是例如每 10 列和行,并且为了从这个过程中获得最佳关联,我选择了使用每个像素循环的区域。但是,这仍然需要很多时间。

我想问你,是否有某种方法可以改进这种方法以获得更好(更快)的结果,或者整个想法不省时,我应该使用不同的方法。

感谢您的每一个建议!

编辑:该程序将用于处理多个图像,并且所有图像的大小都相同。这是阈值后的图片,标记是大黑点。 图片

0 投票
0 回答
111 浏览

c++ - API 调用速度

我安装imagemagick为什么 ImageMagick with OpenCL 比 OpenMP 慢?. 我需要将图像调整为 4 种不同的尺寸并且必须裁剪它们。我编写了一个 C++ 程序,它为文件夹中的 100 个图像调用image.resize("500x500!"), image.resize("550x550!"), image.resize("600x600!"), image.resize("650x650!"), 。image.crop(Geometry(200,150, 10,50))

当我像这样在命令行中运行相同的案例时:

我在 8124.13 毫秒内得到了输出。但是当我在 Magick++ API 中做同样的事情时,我在 369237 毫秒内得到了输出。为什么会有这么大的区别?

当我这样检查设备基准文件时:

表明

根据如何使用 OpenCL 构建 ImageMagick?,API 必须在 GPU 中运行,因为 GPU 设备的分数最低。我该如何解决?

0 投票
3 回答
1250 浏览

c++ - 尝试将 ImageMagick 用作 Visual Studio 编译器的静态库时出现链接器错误

这个问题已经在这里问过了,但是由于我有更多的细节要提供,我认为最好从一个新问题开始。

我在使用 Visual Studio MSVC 2015 编译器的程序中链接 ImageMagick lib 文件时遇到问题。以下是我遵循的步骤:

  • 我使用“configure.exe”实用程序编译了静态 MT 运行时,并在 Visual Studio 中构建了它生成的解决方案“VisualStaticMT.sln”。这会在 C:\ImageMagick-6.9.3-2\VisualMagick\lib 中创建 lib 文件,例如“CORE_RL_Magick++_.lib”。

  • 在我的 C++11 程序中,与 ImageMagick 相关的配置是(我使用 QtCreator,但使用 MSVC2015 编译器):

    /li>

一段程序包含:

编译时出现链接错误:

“dllimport”错误让我感到惊讶,因为我认为我正在使用的“静态 MT 运行时”不应该涉及任何 DLL。

关于如何解决问题的任何想法?

谢谢。


编辑

我尝试过的其他几件事:

  • 将 libraires 与 main.cpp 中的以下行链接给出了相同的错误:

    /li>
  • 我尝试添加位于 C:\ImageMagick-6.9.3-2\VisualMagick\lib 中的所有 27 个 lib 文件。如果我排除 CORE_RL_exr_.lib,我会得到同样的错误。如果我包含它,我会收到其他错误,提示不应添加此文件:

    /li>
0 投票
2 回答
369 浏览

c++ - 在magick ++ api中调整大小的默认过滤器类型

我正在尝试使用 C++ 中的 Magick++ api 调整图像大小。我使用了以下代码,它运行良好。

结果很好,但我需要知道它使用的默认过滤器类型,因为我没有在 resize() 函数中提供任何其他参数。我在文档中搜索过,但找不到太多。感谢您的帮助。

0 投票
2 回答
1402 浏览

c++ - 用 C++ 圆角

我正在寻找一些 c++ 绘图图形库来为动态键盘键创建者创建带有抗锯齿选项的圆角。我已经测试过 OpenCV 和 Magick++ 函数,但结果不是很好。谁能帮我这个?

这是使用 Magick++ 库创建圆角的一个代码示例

这是我得到的结果

这是我得到的结果

这是我正在寻找的结果

这是我正在寻找的结果