<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def channel_angle(im, chanapproxangle=None, *, isshiftdftedge=False, truesize=None):
 """Extract the channel angle from the rfft Parameters: im: 2d array The channel image chanapproxangle: number, optional If not None, an approximation of the result isshiftdftedge: boolean, default False If The image has already been treated: (edge, dft, fftshift), set to True truesize: 2 numbers, required if isshiftdftedge is True The true size of the image Returns: -------- angle: number The channel angle """

    im = np.asarray(im)
    # Compute edge
    if not isshiftdftedge:
        im = edge(im)
    return reg.orientation_angle(im, isshiftdft=isshiftdftedge,
                                 approxangle=chanapproxangle,
                                 truesize=truesize)