FFT kullanarak frekans etki alanına dönüştürmek istediğim bir görüntü var, Java için bunun için kütüphane eksikliği var gibi görünüyor, ancak iki tane buldum. Biri JTransforms, diğeri daha az biliniyordu ve bir ismi yoktu.JTransforms FFT on Image
Daha az bilinen bir tanesine göre, 2D, iki iktidarın uzunluk değerlerini ancak FastFourierTransform.fastFT(real, imaginary, true);
gibi basit kullanım yöntemlerine sahipti ve gerçek her bir piksel değeriyle dolu ikiye katlanmış bir çiftler dizisi ve sanal bölüm bir 2B'dir. aynı büyüklükte sıfırlar dizisi. Boole değeri, ileri veya ters dönüşüme bağlı olacaktır. Bu benim için mantıklıydı ve benim yaptığım herhangi bir dönüşümü mahveden iki gereksinimin gücü dışında çalıştı (başlangıçta ikiye en yakın güce uyacak şekilde resmin etrafına siyah boşluk ekledim). JTransforms için eşdeğer yöntemleri kullanmak ve bunu yaparken herhangi bir rehberlik takdir edecektir. Şu anda ne yaptığımı anlatacağım.
İlgili sınıfın DoubleFFT_2D
olması gerektiğine inanıyorum, yapıcım görüntünün genişliği ve yüksekliğini alacağımı düşündüğüm bir dizi satır ve sütun alır. Görüntünün hiçbir hayali parçası olmadığından, sanırım hayali parçaları sıfır olarak ele alan ve gerçek 2D dizisini piksel dolu geçiren doubleFFT.realForwardFull(real);
'u kullanabilirim. Ne yazık ki bu hiç işe yaramıyor. JavaDoc, the input array must be of size rows*2*columns, with only the first rows*columns elements filled with real data
numaralı durumu belirtir. Ancak bunun görüntü ile nasıl bağlantılı olduğunu ve bu gereksinimi karşılamak için ne yapmam gerektiğini göremiyorum.
Herhangi bir ek bilgi gerekiyorsa, uzun ve kötü bir açıklama için özür dilerim Bunu sağlamaktan mutluluk duyarım.
JTransforms Kütüphane ve Dokümanlar burada bulabilirsiniz: https://sites.google.com/site/piotrwendykier/software/jtransforms
adresinin sonuçlarını almak için daha kolay bir sürü yapacak JTransforms içinde
RealFFTUtils_2D
sınıfı, kontrol, (yeni) docs github online artık görünür : http://wendykierp.github.io/JTransforms/apidocs/ –