Tôi có một hình ảnh mà tôi muốn chuyển sang miền tần số bằng FFT, có vẻ như thiếu thư viện cho điều này cho Java nhưng tôi đã tìm thấy hai. Một là JTransforms và cái kia ít được biết đến hơn và không có tên.JTransforms FFT trên hình ảnh
Với mô hình 2D ít phổ biến hơn, chỉ có thể sử dụng các phương thức như là FastFourierTransform.fastFT(real, imaginary, true);
với thực tế là mảng 2D có đầy đủ mọi giá trị pixel và phần ảo là 2D mảng có cùng kích thước với số 0. Giá trị Boolean sẽ phụ thuộc vào biến đổi tiến hoặc đảo ngược. Điều này có ý nghĩa với tôi và nó hoạt động ngoại trừ sức mạnh của hai yêu cầu làm hỏng mọi biến đổi tôi đã làm (ban đầu tôi thêm không gian màu đen xung quanh hình ảnh để phù hợp với sức mạnh gần nhất của hai hình ảnh). để sử dụng các phương thức tương đương cho JTransforms và sẽ đánh giá cao bất kỳ hướng dẫn nào khi làm như vậy. Tôi sẽ nói những gì tôi đang làm.
Tôi tin rằng lớp có liên quan sẽ là DoubleFFT_2D
, hàm tạo của nó có một số hàng và cột mà tôi cho là chiều rộng và chiều cao của hình ảnh. Vì hình ảnh của tôi không có phần tưởng tượng nên tôi nghĩ rằng tôi có thể sử dụng doubleFFT.realForwardFull(real);
để xử lý các phần tưởng tượng bằng không và truyền mảng 2D thực có đầy đủ pixel. Thật không may điều này không làm việc cả. Các JavaDoc tiểu bang the input array must be of size rows*2*columns, with only the first rows*columns elements filled with real data
Nhưng tôi không thấy làm thế nào điều này liên quan đến hình ảnh của tôi và những gì tôi sẽ phải làm gì để đáp ứng yêu cầu này.
Xin lỗi vì lời giải thích dài và kém, nếu cần thêm thông tin, tôi rất sẵn lòng cung cấp.
JTransforms Thư viện và Docs có thể được tìm thấy ở đây: https://sites.google.com/site/piotrwendykier/software/jtransforms
Trên thực tế, nó xuất hiện (mới hơn) docs đang trực tuyến tại github : http://wendykierp.github.io/JTransforms/apidocs/ –