]> granicus.if.org Git - imagemagick/commitdiff
Added canny edge to Magick++.
authordirk <dirk@git.imagemagick.org>
Sun, 27 Apr 2014 04:38:20 +0000 (04:38 +0000)
committerdirk <dirk@git.imagemagick.org>
Sun, 27 Apr 2014 04:38:20 +0000 (04:38 +0000)
Magick++/lib/Image.cpp
Magick++/lib/Magick++/Image.h
Magick++/lib/Magick++/Include.h

index 6d0e1ea7729a279522c6e2f918fae19f5c6b88de..f4eefef6ff66ae8e2c8c53131d72192dbf240979 100644 (file)
@@ -2081,6 +2081,20 @@ void Magick::Image::brightnessContrastChannel(const ChannelType channel_,
   ThrowPPException;
 }
 
+void Magick::Image::cannyEdge(const double radius_,const double sigma_,
+  const double lowerPercent_,const double upperPercent_)
+{
+  MagickCore::Image
+    *newImage;
+
+  modifyImage();
+  GetPPException;
+  newImage=CannyEdgeImage(constImage(),radius_,sigma_,lowerPercent_,
+    upperPercent_,&exceptionInfo);
+  replaceImage(newImage);
+  ThrowPPException;
+}
+
 void Magick::Image::channel(const ChannelType channel_)
 {
   MagickCore::Image
index 7d4bd51515461c975bf2f002f404be4af2edd55f..b44781d8d9332b173076b9d538bc4d5d9a859027 100644 (file)
@@ -672,6 +672,10 @@ namespace Magick
     void brightnessContrastChannel(const ChannelType channel_,
       const double brightness_=0.0,const double contrast_=0.0);
 
+    // Uses a multi-stage algorithm to detect a wide range of edges in images.
+    void cannyEdge(const double radius_=0.0,const double sigma_=1.0,
+      const double lowerPercent_=0.1,const double upperPercent_=0.3);
+
     // Extract channel from image
     void channel(const ChannelType channel_);
 
index 57f0ef64e62be34027482ed67eff213918e05a3b..64c4f3dd381dcf80233de3d18f82f3952a251e53 100644 (file)
@@ -1034,6 +1034,7 @@ namespace Magick
   using MagickCore::CacheFatalError;
   using MagickCore::CacheWarning;
   using MagickCore::CharcoalImage;
+  using MagickCore::CannyEdgeImage;
   using MagickCore::ChopImage;
   using MagickCore::ClampImage;
   using MagickCore::ClampToQuantum;