@@ -1194,6 +1194,47 @@ def moments(image, moment = MOMENT.FIRST_ORDER):
11941194 safe_call (backend .get ().af_moments (c_pointer (output .arr ), image .arr , moment .value ))
11951195 return output
11961196
1197+ def canny (image ,
1198+ low_threshold , high_threshold = None ,
1199+ treshold_type = CANNY_THRESHOLD .MANUAL ,
1200+ sobel_window = 3 , is_fast = False ):
1201+ """
1202+ Canny edge detector.
1203+
1204+ Parameters
1205+ ----------
1206+ image : af.Array
1207+ - A 2 D arrayfire array representing an image
1208+
1209+ threshold_type : optional: af.CANNY_THRESHOLD. default: af.CANNY_THRESHOLD.MANUAL.
1210+ Can be one of:
1211+ - af.CANNY_THRESHOLD.MANUAL
1212+ - af.CANNY_THRESHOLD.AUTO_OTSU
1213+
1214+ low_threshold : required: float.
1215+ Specifies the % of maximum in gradient image if threshold_type is MANUAL.
1216+ Specifies the % of auto dervied high value if threshold_type is AUTO_OTSU.
1217+
1218+ high_threshold : optional: float. default: None
1219+ Specifies the % of maximum in gradient image if threshold_type is MANUAL.
1220+ Ignored if threshold_type is AUTO_OTSU
1221+
1222+ sobel_window : optional: int. default: 3
1223+ Specifies the size of sobel kernel when computing the gradient image.
1224+
1225+ Returns
1226+ --------
1227+
1228+ out : af.Array
1229+ - A binary image containing the edges
1230+
1231+ """
1232+ output = Array ()
1233+ safe_call (backend .get ().af_canny (c_pointer (output .arr ), threshold_type .value ,
1234+ low_threshold , high_threshold and high_threshold .value or 0 ,
1235+ c_uint (sobel_window ), c_bool (is_fast )))
1236+ return output
1237+
11971238def is_image_io_available ():
11981239 """
11991240 Function to check if the arrayfire library was built with Image IO support.
0 commit comments