From: cristy Date: Mon, 7 Apr 2014 00:35:51 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~2481 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5225abc3192a5f513c040c64ef5d0d593612a779;p=imagemagick --- diff --git a/MagickCore/effect.c b/MagickCore/effect.c index 49b04ebd8..77cd4b927 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -1295,42 +1295,43 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius, #endif for (y=0; y < (ssize_t) edge_image->rows; y++) { - register Quantum - *restrict q; - register ssize_t x; if (status == MagickFalse) continue; - q=GetCacheViewAuthenticPixels(edge_view,0,y,edge_image->columns,1, - exception); - if (q == (Quantum *) NULL) - { - status=MagickFalse; - continue; - } for (x=0; x < (ssize_t) edge_image->columns; x++) { CannyInfo pixel; + register Quantum + *restrict q; + /* Edge if pixel gradient higher than upper threshold. */ status=GetMatrixElement(pixel_cache,x,y,&pixel); if (status == MagickFalse) break; + q=GetCacheViewAuthenticPixels(edge_view,x,y,1,1,exception); + if (q == (PixelPacket *) NULL) + { + status=MagickFalse; + continue; + } if ((pixel.intensity >= upper_threshold) && (GetPixelIntensity(edge_image,q) == 0)) { *q=QuantumRange; + status=SyncCacheViewAuthenticPixels(edge_view,exception); + if (status == MagickFalse) + continue; status=TraceEdges(edge_image,trace_view,pixel_cache,x,y, lower_threshold,exception); if (status == MagickFalse) - break; + continue; } - q+=GetPixelChannels(edge_image); } if (SyncCacheViewAuthenticPixels(edge_view,exception) == MagickFalse) status=MagickFalse;