2012-05-29 38 views
0

如何在Magick ++中使用WhiteThresholdImage?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 ::形象' 到「MagickLib ::圖片* {又名MagickLib :: _圖片*}」的參數 '1' 到 '無符號整型MagickLib :: WhiteThresholdImage(MagickLib ::圖像*,常量字符*)'



    #include 
    using namespace Magick; 

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

錯誤: 'WhiteThresholdImage' 未在此範圍內聲明

回答

1

您正在將C API與C++ API混合使用,並且不能像那樣混合使用。

WhiteThresholdImage()函數未通過Magick ++公開。然而,quantumOperator()方法可以做同樣的事情(以及更多)。以下將數字範圍的20%以上的白色閾值像素設置爲白色:

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