Python cv2.magnitude() Examples
The following are 7
code examples of cv2.magnitude().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
cv2
, or try the search function
.
Example #1
Source File: spfunctions.py From spfeas with MIT License | 7 votes |
def fourier_transform(ch_bd): dft = cv2.dft(np.float32(ch_bd), flags=cv2.DFT_COMPLEX_OUTPUT) dft_shift = np.fft.fftshift(dft) # get the Power Spectrum magnitude_spectrum = 20. * np.log(cv2.magnitude(dft_shift[:, :, 0], dft_shift[:, :, 1])) psd1D = azimuthal_avg(magnitude_spectrum) return list(cv2.meanStdDev(psd1D))
Example #2
Source File: spfunctions.py From spfeas with MIT License | 6 votes |
def get_mag_avg(img): img = np.sqrt(img) kernels = get_kernels() mag = np.zeros(img.shape, dtype='float32') for kernel_filter in kernels: gx = cv2.filter2D(np.float32(img), cv2.CV_32F, kernel_filter[1], borderType=cv2.BORDER_REFLECT) gy = cv2.filter2D(np.float32(img), cv2.CV_32F, kernel_filter[0], borderType=cv2.BORDER_REFLECT) mag += cv2.magnitude(gx, gy) mag /= len(kernels) return np.uint8(mag)
Example #3
Source File: spfunctions.py From spfeas with MIT License | 6 votes |
def get_mag_ang(img): """ Gets image gradient (magnitude) and orientation (angle) Args: img Returns: Gradient, orientation """ img = np.sqrt(img) gx = cv2.Sobel(np.float32(img), cv2.CV_32F, 1, 0) gy = cv2.Sobel(np.float32(img), cv2.CV_32F, 0, 1) mag, ang = cv2.cartToPolar(gx, gy) return mag, ang, gx, gy
Example #4
Source File: spfunctions.py From spfeas with MIT License | 5 votes |
def grad_mag(ch_bd): # normalize mu_ = ch_bd.mean() std_ = ch_bd.std() ch_bd = np.divide(np.subtract(ch_bd, mu_), std_) ch_bd[np.isnan(ch_bd)] = 0 ch_bd += abs(ch_bd.min()) # compute gradient orientation and magnitude return get_mag_ang(ch_bd)
Example #5
Source File: 03_fourier_transform.py From Practical-Computer-Vision with MIT License | 5 votes |
def main(): # read an image img = cv2.imread('../figures/flower.png') # create cropped grayscale image from the original image crop_gray = cv2.cvtColor(img[100:400, 100:400], cv2.COLOR_BGR2GRAY) # take discrete fourier transform dft = cv2.dft(np.float32(crop_gray),flags = cv2.DFT_COMPLEX_OUTPUT) dft_shift = np.fft.fftshift(dft) magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1])) # plot results plot_dft(crop_gray, magnitude_spectrum)
Example #6
Source File: gabor.py From emotions with MIT License | 4 votes |
def filter(self, image): """ Filter the given image with the Gabor kernels in this bank. Parameters ---------- image: numpy.array Image to be filtered. Returns ------- responses: numpy.array List of the responses of the filtering with the Gabor kernels. The responses are the magnitude of both the real and imaginary parts of the convolution with each kernel, hence this list dimensions are the same of the image, plus another dimension for the 32 responses (one for each kernel in the bank, since there are 4 wavelengths and 8 orientations). """ image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) responses = [] for wavelength in self._wavelengths: for orientation in self._orientations: # Get the kernel frequency = 1 / wavelength par = KernelParams(wavelength, orientation) kernel = self._kernels[par] # Filter with both real and imaginary parts real = cv2.filter2D(image, cv2.CV_32F, kernel.real) imag = cv2.filter2D(image, cv2.CV_32F, kernel.imag) # The response is the magnitude of the real and imaginary # responses to the filters, normalized to [-1, 1] mag = cv2.magnitude(real, imag) cv2.normalize(mag, mag, -1, 1, cv2.NORM_MINMAX) responses.append(mag) return np.array(responses)
Example #7
Source File: spfunctions.py From spfeas with MIT License | 4 votes |
def feature_fourier(chBd, blk, scs, end_scale): rows, cols = chBd.shape scales_half = int(end_scale / 2.0) scales_blk = end_scale - blk out_len = 0 pix_ctr = 0 for i in range(0, rows-scales_blk, blk): for j in range(0, cols-scales_blk, blk): for k in scs: out_len += 2 # set the output list out_list = np.zeros(out_len, dtype='float32') for i in range(0, rows-scales_blk, blk): for j in range(0, cols-scales_blk, blk): for k in scs: k_half = int(k / 2.0) ch_bd = chBd[i+scales_half-k_half:i+scales_half-k_half+k, j+scales_half-k_half:j+scales_half-k_half+k] # get the Fourier Transform dft = cv2.dft(np.float32(ch_bd), flags=cv2.DFT_COMPLEX_OUTPUT) dft_shift = np.fft.fftshift(dft) # get the Power Spectrum magnitude_spectrum = 20.0 * np.log(cv2.magnitude(dft_shift[:, :, 0], dft_shift[:, :, 1])) psd1D = azimuthal_avg(magnitude_spectrum) sts = list(cv2.meanStdDev(psd1D)) # plt.subplot(121) # plt.imshow(ch_bd, cmap='gray') # plt.subplot(122) # plt.imshow(magnitude_spectrum, interpolation='nearest') # plt.show() # print psd1D # sys.exit() for st in sts: if np.isnan(st[0][0]): out_list[pix_ctr] = 0.0 else: out_list[pix_ctr] = st[0][0] pix_ctr += 1 out_list[np.isnan(out_list) | np.isinf(out_list)] = 0.0 return out_list