0

如何将 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*) '</p>



    #include   
    using namespace Magick;  

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

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

4

1 回答 1

1

您将 C API 与 C++ API 混合在一起,它们不能像那样混合。

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

image.quantumOperator(AllChannels, ThresholdWhiteQuantumOp, 0.20*MaxRGB);
于 2013-01-22T03:42:51.977 回答