问题标签 [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.
c++ - ImageMagick 结果与 Magick++ 不同
我有 3 张图片:source.jpg、saturated.jpg和mask.jpg,我想使用mask.jpg混合source.jpg和saturated.jpg。
当我使用 ImageMagick 的转换命令时:
我得到这个结果。
但是当我对 Magick++ 做同样的事情时:
我得到这个结果。
有人可以告诉我我做错了什么吗?
c++ - 如何在 Magick++ 中为文本添加自动换行
我正在尝试通过这样做将文本添加到 Magick++ 中的图像中:
方法一:
方法二:
方法 1 在给定重力的情况下计算最佳偏移量,但如果文本超出图像范围,则没有任何自动换行。
方法 2 有方法 1 的问题,而且它假设已经计算了正确的偏移量,因此文本写在正确的位置。
如何将自动换行添加到两种方法中的任何一种,但最好添加到方法 1?
PS:ImageMagick 使用标题选项自动换行,但我在 Magick++ 中找不到标题。
编辑:基于字体大小的丑陋边界控制。
c++ - 使用 Magick++ 在 C++ 中获取像素 RGB 值 0-255
我正在使用 C++ 和 Magick++。我需要从像素中获取红色、绿色和蓝色值,但我所做的任何事情都会让我的值超过 255 或十进制值。下一个代码给了我十进制值
另外我不知道我是否可以使用这样的量子值
获得 0 到 255 之间的红色值,而不是十进制。有谁知道如何得到这个或计算(我知道可能没有这个功能,所以我需要自己计算)
c++ - 使用 OpenMP 和 Magick++ 进行逐像素图像处理
我正在编写用于逐像素工作的图像处理的 C++ 代码(使用 Magick++),我想将它与 OpenMP 一起使用,但我有下一个问题:
而且,它还一直卡在无限循环中。
这是代码片段:
有没有办法解决这个问题?
c++ - 图片中已定义标记的位置检测
我仍然是编码的初学者。我目前正在使用 C/C++ 编写一个程序,该程序正在确定照片中已定义标记(这是一个带有白色周围的黑色圆圈)的像素位置。
我从标记和一个向量制作了一个蒙版,其中包含蒙版的每个像素值作为它的元素(使用 Magick++ 我对红色、绿色和蓝色的值求和)。向量包含 aprox。10 000 个值,因为掩码为 100x100px。我还使用阈值函数来简化图像。
比我做了一个网格,也就是对图片做同样的事情,我想在其中找到标记的坐标。它基本上是一个循环,它遍历图像,当程序知道网格中的像素值时,它会立即将它们与掩码进行比较。主要思想是找到掩码和网格位置之一之间的最小差异。
然而,问题是评估所有网格位置的过程需要大量时间(例如,图像有 1920x1080 像素,因此超过 200 万个向量包含 10 000 个值)。我决定循环网格不是每个像素,而是例如每 10 列和行,并且为了从这个过程中获得最佳关联,我选择了使用每个像素循环的区域。但是,这仍然需要很多时间。
我想问你,是否有某种方法可以改进这种方法以获得更好(更快)的结果,或者整个想法不省时,我应该使用不同的方法。
感谢您的每一个建议!
编辑:该程序将用于处理多个图像,并且所有图像的大小都相同。这是阈值后的图片,标记是大黑点。 图片
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 设备的分数最低。我该如何解决?
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>
c++ - 在magick ++ api中调整大小的默认过滤器类型
我正在尝试使用 C++ 中的 Magick++ api 调整图像大小。我使用了以下代码,它运行良好。
结果很好,但我需要知道它使用的默认过滤器类型,因为我没有在 resize() 函数中提供任何其他参数。我在文档中搜索过,但找不到太多。感谢您的帮助。
c++ - 用 C++ 圆角
我正在寻找一些 c++ 绘图图形库来为动态键盘键创建者创建带有抗锯齿选项的圆角。我已经测试过 OpenCV 和 Magick++ 函数,但结果不是很好。谁能帮我这个?
这是使用 Magick++ 库创建圆角的一个代码示例
这是我得到的结果
这是我正在寻找的结果