我有一个以下的CLI,并尝试使用magickwand c获得相同的结果。 一切似乎都很完美,或者我不知道我错过了什么,但是MagickUnsharpMaskImage并不适合我。检查我的源代码。我还附加了CLI和C API生成的源和两个输出图像。
CLI
convert testsharp.jpg -unsharp 0x1 unsharpC.jpg
C代码
int main(int argc, char const *argv[]) {
MagickWand * wand;
wand = NewMagickWand();
MagickReadImage(wand, "testsharp.jpg");
MagickUnsharpMaskImage(wand, 0.0, 1.0, 0.0, 0.0);
MagickWriteImage(wand, "unsharpW.jpg");
return 0;
}
源图片
使用CLI输出图像
使用C
输出图像ImageMagick版
版本:ImageMagick 7.0.5-5 Q16 x86_64 2017-05-23 http://www.imagemagick.org
答案 0 :(得分:2)
来自the man
MagickUnsharpMaskImage()
锐化图像。我们用给定半径和标准偏差(sigma)的高斯算子对图像进行卷积。 为获得合理的结果,radius应大于sigma 。使用半径0,UnsharpMaskImage()
为您选择合适的半径。
强调我的
您称之为radius=0
sigma=1.0
此外default value for those parameters are
将c代码更正为
MagickUnsharpMaskImage(wand, 0.0, 1.0, 1.0, 0.05);