From b31bdaf85eaed23f77fca9f85df499e5ccad8e4c Mon Sep 17 00:00:00 2001 From: Dirk Lemstra Date: Thu, 20 Jul 2017 23:43:20 +0200 Subject: [PATCH] Added autoThreshold to Magick++. --- Magick++/lib/Image.cpp | 8 ++++++++ Magick++/lib/Magick++/Image.h | 7 ++++++- Magick++/lib/Magick++/Include.h | 8 ++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp index 8e18fd12f6..8814b96d00 100644 --- a/Magick++/lib/Image.cpp +++ b/Magick++/lib/Image.cpp @@ -2054,6 +2054,14 @@ void Magick::Image::autoOrient(void) ThrowImageException; } +void Magick::Image::autoThreshold(const AutoThresholdMethod method_) +{ + modifyImage(); + GetPPException; + AutoThresholdImage(image(),method_, exceptionInfo); + ThrowImageException; +} + void Magick::Image::blackThreshold(const std::string &threshold_) { modifyImage(); diff --git a/Magick++/lib/Magick++/Image.h b/Magick++/lib/Magick++/Image.h index efa1b98120..4d6ccd3623 100644 --- a/Magick++/lib/Magick++/Image.h +++ b/Magick++/lib/Magick++/Image.h @@ -1,7 +1,7 @@ // This may look like C code, but it is really -*- C++ -*- // // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003 -// Copyright Dirk Lemstra 2013-2016 +// Copyright Dirk Lemstra 2013-2017 // // Definition of Image, the representation of a single image in Magick++ // @@ -641,6 +641,11 @@ namespace Magick // Adjusts an image so that its orientation is suitable for viewing. void autoOrient(void); + // Automatically selects a threshold and replaces each pixel in the image + // with a black pixel if the image intentsity is less than the selected + // threshold otherwise white. + void autoThreshold(const AutoThresholdMethod method_); + // Forces all pixels below the threshold into black while leaving all // pixels at or above the threshold unchanged. void blackThreshold(const std::string &threshold_); diff --git a/Magick++/lib/Magick++/Include.h b/Magick++/lib/Magick++/Include.h index fb18091b27..bbb1d62f8d 100644 --- a/Magick++/lib/Magick++/Include.h +++ b/Magick++/lib/Magick++/Include.h @@ -336,6 +336,13 @@ namespace Magick using MagickCore::ShapeAlphaChannel; using MagickCore::TransparentAlphaChannel; + // Auto threshold methods + using MagickCore::AutoThresholdMethod; + using MagickCore::UndefinedThresholdMethod; + using MagickCore::KapurThresholdMethod; + using MagickCore::OTSUThresholdMethod; + using MagickCore::TriangleThresholdMethod; + // Channel types using MagickCore::ChannelType; using MagickCore::UndefinedChannel; @@ -1144,6 +1151,7 @@ namespace Magick using MagickCore::AutoGammaImage; using MagickCore::AutoLevelImage; using MagickCore::AutoOrientImage; + using MagickCore::AutoThresholdImage; using MagickCore::Base64Decode; using MagickCore::Base64Encode; using MagickCore::BilevelImage;