'**SUMMARY**
This method works just like _doDFT but returns a deep copy
of the resulting array which can be used in destructive operations.
**PARAMETERS**
* *grayscale* - If grayscale is True we first covert the image to grayscale, otherwise
we perform the operation on each channel.
**RETURNS**
A deep copy of the cached DFT real/imaginary image list.
**EXAMPLE**
>>> img = Image(\'logo.png\')
>>> myDFT = img._getDFTClone()
>>> SomeCVFunc(myDFT[0])
**NOTES**
http://en.wikipedia.org/wiki/Discrete_Fourier_transform
http://math.stackexchange.com/questions/1002/fourier-transform-for-dummies
**SEE ALSO**
ImageClass._doDFT()'

def _getDFTClone(self, grayscale=False):

    self._doDFT(grayscale)
    retVal = []
    if grayscale:
        gs = cv.CreateImage((self.width, self.height), cv.IPL_DEPTH_64F, 2)
        cv.Copy(self._DFT[0], gs)
        retVal.append(gs)
    else:
        for img in self._DFT:
            temp = cv.CreateImage((self.width, self.height), cv.IPL_DEPTH_64F, 2)
            cv.Copy(img, temp)
            retVal.append(temp)
    return retVal
