WhiteThresholdImage magick

时间:2012-05-29 17:35:14

标签: c++ visual-c++ graphicsmagick magickwand magick++

如何将WhiteThresholdImage与magick ++一起使用?

我搜索它,我找到了解决方案,所以我尝试:

#include <Magick++.h>  
using namespace Magick;  

int main()  
{  
    Magick::InitializeMagick("");  
    Image image;  
    image.read("logo.jpg");  
    char* threshold = 20;  
    MagickLib::WhiteThresholdImage(image, threshold);  
}  

错误:无法将'Magick :: Image'转换为'MagickLib :: Image * {aka MagickLib :: _ Image *}'以将参数'1'转换为'unsigned int MagickLib :: WhiteThresholdImage(MagickLib :: Image *,const char *) “



    #include   
    using namespace Magick;  

    int main()  
    {  
        Magick::InitializeMagick("");  
        Image image;  
        image.read("logo.jpg");  
        char* threshold = 20;  
        WhiteThresholdImage(image, threshold);  
    }  

错误:未在此范围内声明'WhiteThresholdImage'

1 个答案:

答案 0 :(得分:1)

您正在将C API与C ++ API混合使用,并且不能像这样混合使用。

WhiteThresholdImage()函数不通过Magick ++公开。但是,quantumOperator()方法可以做同样的事情(以及更多)。以下将白色阈值像素超过数值范围的20%变为白色:

image.quantumOperator(AllChannels, ThresholdWhiteQuantumOp, 0.20*MaxRGB);