Đây không phải là câu hỏi "lập trình". Nhưng tôi chắc chắn đó là một thứ được nhiều người biết đến và hiểu rõ trong cộng đồng này.Làm cách nào để nhân phổ phổ của hai hình ảnh có kích thước khác nhau?
Tôi có hình ảnh, x và hình ảnh nhỏ hơn nhiều, y và tôi cần phải xoay chuyển cả hai bằng cách nhân các FFT của chúng. Nhưng vì chúng không có cùng kích thước nên tôi không biết cách thực hiện phép nhân miền tần số.
Tôi lấy FFT (hai chiều) FFT của x (là ma trận số nguyên của kích thước 4096 x 4096), cung cấp cho tôi đại diện miền tần số, X (là ma trận số phức và tôi nghĩ rằng đó là thứ nguyên là 2048 x 2048).
Tương tự, tôi lấy (FFT hai chiều của y (là ma trận số nguyên của kích thước 64 x 64), cung cấp cho tôi đại diện miền tần số, Y (cũng là ma trận số phức Tôi đang sử dụng hàm bốn trong Bí quyết số, vì vậy ma trận đầu vào của tôi, x và y phải được thu gọn thành mảng một chiều, được thay thế bằng các biến đổi Fourier rời rạc của chúng, X và Y. Vấn đề là mặc dù đây là vấn đề hai chiều với các hình ảnh, tôi đang làm việc với các mảng một chiều
Nếu tôi cố gắng ghép hai hình ảnh có cùng kích thước, x và y. Nó tất cả sẽ rất đơn giản:
X = FFT(x)
Y = FFT(y)
Z = X * Y (term by term multiplication)
Convolution of x and y = IFFT(Z)
Nhưng nếu X và Y có độ dài khác nhau, làm cách nào để thực hiện phép nhân?
Một khả năng là đưa ra y để có cùng kích thước với x. Nhưng điều này có vẻ không hiệu quả khủng khiếp. Một khả năng khác là đưa ra Y để có cùng kích thước với X. Nhưng tôi không biết điều này có nghĩa là gì trong không gian tần số. Đây là một cách khác để đặt câu hỏi này: Nếu tôi muốn kết hợp hai hình ảnh với các kích thước rất khác nhau bằng cách sử dụng FFT để tôi có thể nhân phép phổ của chúng (đại diện miền tần số), làm cách nào để thực hiện phép nhân đó?
Xin cảm ơn,
~ Michael.
Bạn đang cố gắng làm gì với hợp đồng này? Bạn có muốn tính toán độ co giãn 2D của hình ảnh nhỏ của bạn y trên hình ảnh lớn của bạn không? Ví dụ: nếu bạn đang tìm kiếm một bản vá nhỏ y trong một hình ảnh lớn x, bạn có thể sử dụng convolution để thực hiện tìm kiếm tương quan cho y. Nó sẽ hiệu quả hơn nhiều trong miền fourier. Nhưng bạn sẽ không muốn thu gọn chúng thành 1D nếu đó là mục tiêu của bạn. Ứng dụng nhân phổ của x và y là gì? –