求問如何用matlab對影象中的一塊四邊形區域進行處理,比如進行傅利葉變化

2022-06-28 09:00:03 字數 4295 閱讀 7627

1樓:匿名使用者

i6=imread('c:\1.bmp'); %讀入影象noisy=imnoise(i6,'salt & pepper',0.05); %加入雜訊

nosiy=noisy(1:30,1:30); % 選取一塊子影象[m,n]=size(noisy);

f=fftshift((fft2(double(noisy))));

m1=floor(m/2);

n1=floor(n/2);

d0=20;

for u=1:m

for v=1:n

d(u,v)=sqrt((u-m1)^2+(v-n1)^2);

if d(u,v)

h(u,v)=1;

else

h(u,v)=0;

endg(u,v)=h(u,v)*f(u,v);

endend

butterfilter=ifft2(ifftshift(g));

imshow(uint8(butterfilter));

2樓:匿名使用者

將選區的資料儲存在乙個變數中,處理方法是一樣的

用matlab進行影象的傅利葉變換

3樓:匿名使用者

除了最後一句化為0~255之外

用abs求出複數的模

和先求實部,虛部,再用兩者平方和再開方求的複數模,本質上沒有區別只是第一中,方法多得到了實部訊號和虛部訊號

如何將彩色影象用matlab進行傅利葉變換,再反變換回去?

4樓:寶刀沒開刃

影象bai

以im代替

r = im(:, :, 1);

g = im(:, :, 2);

b = im(:, :, 3);

fr = fft2(r); %傅利葉變換dufg = fft2(g);

fb = fft2(b);

or = ifft2(fr); %傅利葉反變換og = ifft2(fg);

ob = ifft2(fb);

out(:, :, 1) = real(or);

out(:, :, 2) = real(og);

out(:, :, 3) = real(ob);

imshow(out) %out就是反變換回zhi去dao的影象,如果沒出錯,顯示出內來的out應該與im一樣容

求matlab達人!!如何對採集到的資料進行傅利葉變化,如何畫出頻譜圖?

5樓:屈國慶四川巴中

先把第二列資料索引出來,再進行傅利葉變換就好了。下面是**,x=shuju(:,2);%資料換成你採集到的資料fs=1000;%取樣頻率,這個是要根據你的修改n=length(x);

fw1=abs(fft(x))/n*2;

fw=fw1(1:n/2);

xt=fs/n:fs/n:fs/2; %產生橫座標,單位為hz,

plot(xt,fw)

grid off

matlab,對離散陣列,進行傅利葉變化!!!!

6樓:

上面一位網友的答案中已經對對訊號取樣得到x了,你忽略x 的來歷只管是實驗測得的就好了。取樣頻率改成你實際的取樣頻率,資料點數要湊乙個2的冪次的形式並且要大於你實際訊號的取樣點數。其他都不變。

7樓:

參考一下這個例子

例:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。取樣頻率fs=100hz,繪製n=128點幅頻圖。

clf;

fs=100;n=128; %取樣頻率和資料點數

n=0:n-1;t=n/fs; %時間序列

x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %訊號

y=fft(x,n); %對訊號進行快速fourier變換

mag=abs(y); %求得fourier變換後的振幅

f=n*fs/n; %頻率序列

subplot(2,2,1),plot(f,mag); %繪出隨頻率變化的振幅

xlabel('頻率/hz');

ylabel('振幅');title('n=128');grid on;

subplot(2,2,2),plot(f(1:n/2),mag(1:n/2)); %繪出nyquist頻率之前隨頻率變化的振幅

xlabel('頻率/hz');

ylabel('振幅');title('n=128');grid on;

關於如何用matlab做傅利葉變換的問題

8樓:匿名使用者

不需要擬合 :

設抽樣頻率為fs(hz),訊號點數為n,訊號序列為x。

x=imread(『』)

f = fftshift(fft(x));

w = linspace(-fs/2, fs/2, n);%頻率座標,單位hz

plot(w,abs(f));

title('訊號的頻譜');

xlabel('頻率(hz)');

9樓:淩居診拙

matlab傅利葉變換

y = fft(y,512);

pyy = y.* conj(y) / 512;

f = 1000*(0:256)/512;

plot(f,pyy(1:257))

title('frequency content of y')xlabel('frequency (hz)')

用matlab進行傅利葉變換。傅利葉變換得到的相位譜、幅值譜有什麼用?怎麼分析?

10樓:萬能導師

對速度訊號進行傅利葉譜分析之後,其縱座標對應的幅值的物理意義是頻率。

傅利葉變換廣泛應用於物理、電子、數論、組合數學、訊號處理、概率論、統計學、密碼學、聲學、光學、海洋學、結構動力學等領域。

例如在訊號處理中,傅利葉變換的典型用法是將訊號分解成頻譜——顯示與頻率對應的振幅的大小。

擴充套件資料:

訊號處理的基本內容包括變換、濾波、調製、解調、檢測、頻譜分析和估計。例如型別的傅利葉變換、正弦變換、余弦變換、沃爾什變換等。濾波包括高通濾波、低通濾波、帶通濾波、維納濾波、卡爾曼濾波、線性濾波、非線性濾波和自適應濾波。

頻譜分析包括確定訊號分析和隨機訊號分析。通常最常見的研究是隨機訊號分析,也稱為統計訊號分析或估計,通常分為線性譜估計和非線性譜估計。

譜估計包括週期圖估計、最大熵譜估計等。由於訊號型別的複雜性,當被分析訊號不能滿足高斯分布和非最小相位條件時,就有了一種高階譜分析方法。

高階譜分析可以提供訊號的相位資訊、非高斯資訊和非線性資訊。自適應濾波和均衡也是應用研究的重要領域。自適應濾波包括水平lms自適應濾波、格點自適應濾波、自適應抵消濾波和自適應均衡濾波。

另外,還有陣列訊號處理等。

11樓:匿名使用者

影象的傅利葉變換可參考fft2,abs計算幅度譜,angle計算相位。

幅度譜一般代表影象的亮度資訊,相位譜代表影象的構造紋理資訊,你可有試驗使用相位譜和單位幅度譜重構影象。

12樓:匿名使用者

你把**貼出來啊,你這個寫法顯然生成的**沒調整好比如你的幅值圖和相位圖肯定是沒有換成log座標下歸一化處理,看到的賦值圖只有零頻率的亮點

你的相位圖應該也是相同的問題

要理解實部虛部建議你不要先從軟體給出的二維影象變換上來理解,好好看一下數學公式特別是有限長的離散傅利葉變換是怎麼在處理

**貼出來了之後再跟你談操作問題。

matlab怎麼對乙個訊號進行傅利葉變換?

13樓:

我之前遇到的乙個問題 看看是否對你有幫助

訊號為 y(t)=sin(2*pi*t), 取樣區間為 0到1秒 取樣頻率 100 (當取樣間隔非常小時,其實就等同於連續了,類似於積分的思想) **如下:

f=100;

t=[0:1/f:1] %時間區間 間隔為0.01% t=n/f;

x=sin(2*pi*t);

y=fft(x,f*1+1);

plot(t,y),title('0到1');grid on;

14樓:匿名使用者

我只知道fft這個函式,是離散的。

如何用matlab計算已知影象的熵

function entr yentropy a a uint8 a 這裡a為8位的單色影象或24為的rgb彩色影象 m n l size a entr 0 for k 1 l hi zeros 1,256 for i 1 m for j 1 n hi a i,j,k 1 hi a i,j,k 1 ...

在matlab中如何輸出函式的影象

如果要畫y x 3 x 2 x 5在 20,20 上的影象,可利用以下方法,繪畫區間可以自己定義 方法一 利用plot函式來繪畫影象 x 0 0.1 20 規定繪畫區間 從 20畫到20,中間以0,1為間隔 y x.3 x.2 x 5 確定要繪畫的函式,注意不要漏了 plot x,y 方法二 利用e...

matlab中如何獲取整幅影象的畫素值

matlab獲取整幅影象的畫素值的方法 用imread函式,輸入m imread d 10.jpg 即可。matlab可以進行矩陣運算 繪製函式和資料 實現演算法 建立使用者介面 連線其他程式語言的程式等,主要應用於工程計算 控制設計 訊號處理與通訊 影象處理 訊號檢測 金融建模設計與分析等領域。首...