/ / dft für die Bildverarbeitung in Matlab ohne Matlab-Funktion verwenden - Matlab, Dft

Verwenden Sie dft für die Bildverarbeitung in Matlab mit Matlab-Funktion - Matlab, dft

Ich habe 2 Funktionen in Matlab

%%%%%%% test_dft
clc;clear all;close all;
%%


img=(imread("images/test_image.jpg"));
if isrgb(img)
a=double(rgb2gray(img));
else
a=double(img);
end
temp = zeros(size(a));
f = double(zeros(size(a)));
[m n]=size(a)
for i = 1:m
temp(:,i)=dft(a(:,i));
end
for j = 1:n
f(j,:) = dft(a(j,:));
end


%%%%%%%% dft.m
function X=dft(x1)
N=length(x1);
X=zeros(size(x1));
i=sqrt(-1);
for k=0:N-1
for n=0:N-1
X(k+1)=(X(k+1)+x1(n+1)*exp(-2*pi*i*k*n/N)) ;
end
end
end

Ich möchte dft des Bildes berechnen und danach zum Maskieren im Frequenzbereich verwenden (ohne Matlab-Funktion). Dieser Code hält lange Zeit fest, funktioniert aber nicht. Ich weiß nicht warum.

Antworten:

0 für die Antwort № 1

imread gibt ganzzahlige Werte zurück. Wandeln Sie sie zuerst um.

a = double(a);